次の二つのスタック操作を定義する。
PUSH n :スタックにデータ(整数値n )をプッシュする。
POP:スタックからデータをポップする。
空のスタックに対して、次の順序でスタック操作を行った結果はどれか。
PUSH 1 → PUSH 5 → POP → PUSH 7 → PUSH 6 → PUSH 4 → POP → POP → PUSH 3
ア | |
イ | |
ウ | |
エ |
答え ウ
【解説】
空のスタックに対して、PUSH 1 → PUSH 5 → POP → PUSH 7 → PUSH 6 → PUSH 4 → POP → POP → PUSH 3の順序でスタック操作を行うと
PUSH 1でスタックにデータ1を格納して、スタックの状態は{1}
PUSH 5でスタックにデータ5を格納して、スタックの状態は{1, 5}
POPで最後にスタックにPUSHした5が取り出され、スタックの状態は{1}
PUSH 7でスタックにデータ7を格納して、スタックの状態は{1, 7}
PUSH 6でスタックにデータ6を格納して、スタックの状態は{1, 7, 6}
PUSH 4でスタックにデータ4を格納して、スタックの状態は{1, 7, 6, 4}
POPで最後にスタックにPUSHした4が取り出され、スタックの状態は{1, 7, 6}
POPで最後にスタックにPUSHした6が取り出され、スタックの状態は{1, 7}
PUSH 3でスタックにデータ3を格納して、スタックの状態は{1, 7, 3}
(ウ)になる。
【キーワード】
・スタック