基本情報技術者試験 過去問解説

スタックとは?基本情報技術者試験 平成29年度 秋期 午前 問5を解説

基本情報技術者試験 平成29年度 秋期 午前 問5は、スタックに関する理解を問う問題です。検索から入っても、問題文、選択肢、正解、解説、各選択肢がなぜ違うかをこのページだけで確認できます。

問題文

A, B, C, D の順に到着するデータに対して,一つのスタックだけを用いて出力可能なデータ列はどれか。

この問題の出題ポイント

  • スタックの定義だけでなく、問題文中の条件がどの選択肢に当てはまるかを確認する。
  • データ構造分野では、用語の目的・主体・責任範囲の違いが選択肢で問われやすい。

選択肢

  1. A, D, B, C
  2. B, D, A, C
  3. C, B, D, A正解
  4. D, C, A, B

正解

: C, B, D, A

解説

スタックはLIFO。各データ到着時にpush/popを任意に挟める。Cを出すならA,B,Cまでpush→popでC、popでB、Dをpush→popでD、popでA → C,B,D,A 可能。

なぜ他の選択肢が違うのか

  • A,D,B,Cは Aを出してから後でBより先にDを出すには A→push,pop, B,C,Dと積んで Dを出した時点でB,Cが下に。Bを次に出すには C先になる必要があり不可。

  • B,D,A,Cでは Bの後に Dを出した時点で残りはA,C(順A→C積み)、A出すならCを先に出す必要があり不可。

  • ウ(正解)

    C,B,D,A は前述の通り実現可能。

  • D,C,A,Bでは A,B,C,Dをすべて積んだ後 popで D,C,B,Aと出るしかなく A,Bの順序が逆。

解き方の整理

スタックの問題では、選択肢のキーワードだけで判断せず、問題文が示す条件と正解選択肢の説明が一致しているかを見ます。誤答選択肢は、似た用語を混ぜる、主体を入れ替える、目的や範囲を広げすぎる、という形で作られることが多いため、選択肢別解説まで確認しておくと復習効率が上がります。

関連問題

前後の問題

平成29年度 秋期 午前 の関連する問題

復習を続ける

間違えた問題、苦手タグ、模試履歴を保存して復習する導線を用意しています。広告なしPro、弱点分析、復習リマインダーは段階的に提供予定です。