シカクマナボ.ITパスポート

ITパスポート 平成28年秋期 問92

出典:IPA「ITパスポート試験」平成28年秋期 問92

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

正解と解説を見る

正解:エ

Cを最初に出すにはAとBをスタックへ退避し、Cを出します。その後Dも出せますが、スタックは上がB、下がAなのでAを先には出せません。

したがってC、D、A、Bは不可能です。後に積んだBが先に出るというLIFOの制約が、最後の二つの順序を決めます。

条件を選んで演習する