問7 スタック

PUSH命令でスタックにデータを入れ、POP命令でスタックからデータを取り出す。動作中のプログラムにおいて、ある状態から次の順で10個の命令を実行したとき、スタックの中のデータは図のようになった。1番目のPUSH命令でスタックにいれたデータはどれか。

  1. 29
  2. 7
  3. 326
  4. 55

POPする際に取り出されるデータは、その時点から見て一番最後にPUSHされたデータである性質を使いましょう。POPを見つけるたびに1つ前のPUSHとあわせて消去してゆくと、下図のように4つのPUSHが残ります。

1番目のPUSH命令は、スタックでは上から4つめにあるはずです。というわけで、答えは2です。