ITパスポート試験 過去問解説

スタックとは?ITパスポート試験 2016年 (平成28年 秋期) 問92を解説

ITパスポート試験 2016年 (平成28年 秋期) 問92は、スタックに関する理解を問う問題です。検索から入っても、問題文、選択肢、正解、解説、各選択肢がなぜ違うかをこのページだけで確認できます。

問題文

後に入れたデータが先に取り出されるデータ構造(以下,スタックという)がある。これを用いて,図に示すような,右側から入力されたデータの順番を変化させて,左側に出力する装置を考える。この装置に対する操作は次の3通りである。 (1) 右側から入力されたデータをそのまま左側に出力する。 (2) 右側から入力されたデータをスタックの1番上に積み上げる。 (3) スタックの1番上にあるデータを取り出して左側に出力する。 この装置の右側から順番にデータA,B,C,Dを入力した場合に,この(1)~(3)の操作を組み合わせても,左側に出力できない順番はどれか。 ``` ← (1) ← ↓ (3)↑(2) [スタック] ← A, B, C, D ```

この問題の出題ポイント

  • スタックの定義だけでなく、問題文中の条件がどの選択肢に当てはまるかを確認する。
  • テクノロジ系分野では、用語の目的・主体・責任範囲の違いが選択肢で問われやすい。
  • 関連タグ: 基礎理論、スタック、LIFO、図表問題。

選択肢

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

正解

: C, D, A, B

解説

スタックはLIFO(Last In First Out,後入れ先出し)構造で,最後に積んだものから先に取り出される. 右から順にA,B,C,Dを入力した状況での出力順を検討する. エ「C,D,A,B」を実現するには:CまでにA,Bを積んでおきCが入ったら出力,続いてDを入力後すぐ出力,次にAを出したいがその時点でスタックにはA,B(下から積まれている)があり,LIFOの原則によりAより上にあるBを先に取り出さないとAは取れない. しかしBよりAを先に出す必要があるためLIFO原則に反し実現不能で,答えはエ. 入力順A→B→C→DとLIFO制約で出力順序が決まる代表的な問題で,スタックの動作を丁寧に追えば解ける.

解き方の整理

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

関連用語

関連問題

前後の問題

2016年 (平成28年 秋期) の関連する問題

復習を続ける

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