空のスタックに対して次の操作を行った場合,スタックに残っているデータはどれか。
ここで,"push x"はスタックへデータxを格納し,"pop"はスタックからデータを取り出す操作を表す。
push 1 → push 2 → pop → push 3 → push 4 → pop → push 5 → pop
正答1
解説
正解は1です。
スタックの操作をたどる問題です。
スタックは後入れ先出し(LIFO:Last In First Out)のデータ構造です。
popでは、最後に格納したデータが取り出されます。
【計算】
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です。
【選択肢別解説】
1:○ 上のとおり、最後に残るデータは1と3です。
2:× 2と4は、それぞれ直後のpopで取り出されています。
残っていません。
3:× 2と5は、どちらもpopで取り出されています。
残っていません。
4:× 4と5も、それぞれpopで取り出されています。
残っているのは1と3です。
【ポイント】
スタックはLIFO、キューは先入れ先出し(FIFO:First In First Out)です。
操作を1つずつ書き出して中身を追うと、取り違えを防げます。