アルゴリズムとプログラミング
空のスタックに対して次の順序で操作を行った。push(1), push(2), pop, push(3), push(4), pop, push(5), pop, pop。すべての操作後、スタックに残っている要素を底から順に並べたものはどれか。
ア.1, 3, 5
イ.1, 2, 3
ウ.1, 5
エ.1正解
解説
スタックは「お皿の積み重ね」。pushは上に乗せる、popは一番上を取る——LIFO(後入れ先出し)。1ステップずつ紙に書くのが最強の解法。頭の中で巻き戻すと必ず事故ります。
なぜ エ が正解か
エが正解。1操作ずつトレース(底→上の順で表記):①push(1) → [1]、②push(2) → [1,2]、③pop(2が出る)→ [1]、④push(3) → [1,3]、⑤push(4) → [1,3,4]、⑥pop(4が出る)→ [1,3]、⑦push(5) → [1,3,5]、⑧pop(5が出る)→ [1,3]、⑨pop(3が出る)→ [1]。最終的にスタックには1だけが残る。
出典: AI生成問題(学習用)