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

答え イ
【解説】
実行した処理を「PUSH a → PUSH b → POP → PUSH c → PUSH d → PUSH e → PUSH f POP → POP → PUSHg」として、スタックの状態を考える。(最初、スタックは空とする。)
- PUSH aでスタックは[a]
- PUSH bでスタックは[b, a]
- POPでスタックからデータbを取り出し[a]
- PUSH cでスタックは[c, a]
- PUSH dでスタックは[d, c, a]
- PUSH eでスタックは[e, d, c, a]
- PUSH fでスタックは[f, e, d, c, a]
- POPでスタックからデータfを取り出し[e, d, c, a]
- POPでスタックからデータeを取り出し[d, c, a]
- PUSH gでスタックは[g, d, c, a]
したがって、最初にPUSHしたデータはスタックの上から4番目なので 7(イ)になる。
【キーワード】
・スタック
【キーワードの解説】
- スタック
処理途中のデータを一時的に記憶させるメモリ領域のことで、記憶させた順番と逆の順にデータを取り出します。
1→2→3→4とスタックにセットすると、取り出す順は4→3→2→1になります。これをLIFO(Last-In First-Out)やFILO(First-In Last-Out)と呼びます。
もっと、「スタック」について調べてみよう。
戻る
一覧へ
次へ
|