平成19年秋期試験問題 午前問9

A,B,Cの順で入力されるデータがある。各データについてスタックへの挿入と取り出しを一回ずつ行うことができる場合,データの出力順序は何通りあるか。
09.png

  • 3
  • 4
  • 5
  • 6
正解 問題へ
分野 :テクノロジ系
中分類:アルゴリズムとプログラミング
小分類:データ構造
解説
A,B,Cの出力順序としては「3!=6種類」があります。それぞれが出力可能であるかを検証します。
A,B,C
push(A) → pop → push(B) → pop → push(C) → pop の順序で出力可能です。
09_1.png
A,C,B
push(A) → pop → push(B) → push(C) → pop → pop の順序で出力可能です。
09_2.png
B,A,C
push(A) → push(B) → pop → pop → push(C) → pop の順序で出力可能です。
09_3.png
B,C,A
push(A) → push(B) → pop → push(C) → pop → pop の順序で出力可能です。
09_4.png
C,A,B
push(A) → push(B) → push(C) → pop → pop ❌
※Cの出力後、Bより先にAを出力することができないため無理な順序です。
09_5.png
C,B,A
push(A) → push(B) → push(C) → pop → pop → pop の順序で出力可能です。
09_6.png
以上より、データの出力順序は5通りになります。したがって「ウ」が正解です。

スタックの構造上、後からpushされた要素を出力した後、その要素より2つ以上前にpushされた要素を続けて出力することはできません。

この問題の出題歴


Pagetop