アルゴリズムとプログラミング(全21問中18問目)

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

出典:平成22年春期 問85

  • X,Z,Y
  • Y,Z,X
  • Z,X,Y
  • Z,Y,X
正解 問題へ
分野:テクノロジ系
中分類:アルゴリズムとプログラミング
小分類:アルゴリズムとプログラミング
解説
スタックは、LIFO(Last In Fast Out,後入先出し)のデータ構造です。どれも出力できそうですが、入力する順番が決まっているので出力する順番に制約がかかってきます。

この問題では選択肢の中で出力できるものを選択肢から消していく方法で答えを導いていきます。最後に残ったものが出力できない順番というわけです。
  • in(X) → out(X) → in(Y) → in(Z) → out(Z) → out(Y)
  • in(X) → in(Y) → out(Y) → in(Z) → out(Z) → out(X)
  • 出力できない順番です。
  • in(X) → in(Y) → in(Z) → out(Z) → out(Y) → out(X)

Pagetop