下から上へデータを積み上げ、上にあるデータから順に取り出すデータ構造(以下、スタックという)がある。これを用いて、図に示すような、右側から入力されたデータの順番を変化させて、左側に出力する装置を考える。この装置に対する操作は次の3通りである。
① 右側から入力されたデータをそのまま左側に出力する。
② 右側から入力されたデータをスタックに積み上げる。
③ スタックの一番上にあるデータを取り出して左側に出力する。
この装置の右側から順番にX,Y,Zを入力した場合に、この①~③の操作を組み合わせても、左側に出力できない順番はどれか。
ア | X,Z,Y |
イ | Y,Z,X |
ウ | Z,X,Y |
エ | Z,Y,X |
ア | × | X,Z,Y | : | ①右側から入力されたデータをそのまま右側に出力する。 →X出力 ②右側から入力されたデータをスタックに積み上げる。 ①右側から入力されたデータをそのまま右側に出力する。 →Z出力 ③スタックの一番上にあるデータを取り出して左側に出力する。 →Y出力 |
イ | × | Y,Z,X | : | ②右側から入力されたデータをスタックに積み上げる。 ①右側から入力されたデータをそのまま右側に出力する。 →Y出力 ①右側から入力されたデータをそのまま右側に出力する。 →Z出力 ③スタックの一番上にあるデータを取り出して左側に出力する。 →X出力 |
ウ | ○ | Z,X,Y | : | 出力できない順番である。 |
エ | × | Z,Y,X | : | ②右側から入力されたデータをスタックに積み上げる。 ②右側から入力されたデータをスタックに積み上げる。 ①右側から入力されたデータをそのまま右側に出力する。 →Z出力 ③スタックの一番上にあるデータを取り出して左側に出力する。 →Y出力 ③スタックの一番上にあるデータを取り出して左側に出力する。 →X出力 |