問題プレビューID: f5a0271f

問 5

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

解説

スタックは後入れ先出し(LIFO)の構造であり,データは A, B, C, D の順に到着するので,この順にプッシュし,任意のタイミングでポップして出力する。

「ウ C, B, D, A」は次の手順で出力できる。

  1. A, B, C を順にプッシュする(スタック:下から A, B, C)。
  2. ポップして C を出力する。
  3. ポップして B を出力する。
  4. D をプッシュする(スタック:下から A, D)。
  5. ポップして D を出力する。
  6. ポップして A を出力する。

他の選択肢は実現できない。例えば「ア A, D, B, C」は A を出力した後,D を出力するために B, C, D を積むと,D の次に取り出せるのは C であり,B を先に出力できない。同様に「イ」「エ」も途中で順序が合わなくなる。したがって,正解は「ウ」です。