アルゴリズムとプログラミング

平成30年度 春期 基本情報技術者試験 午前 問5

次の二つのスタック操作を定義する。 PUSH n: スタックにデータ(整数値 n)をプッシュする。 POP: スタックからデータをポップする。 空のスタックに対して,次の順でスタック操作を行った結果はどれか。 PUSH 1 → PUSH 5 → POP → PUSH 7 → PUSH 6 → PUSH 4 → POP → POP → PUSH 3
各選択肢は 3 段のスタックの図。上から下へ: ア 1,7,3 / イ 3,4,6 / ウ 3,7,1 / エ 6,4,3。
  • ア [図] スタック(上から)1, 7, 3
  • イ [図] スタック(上から)3, 4, 6
  • ウ [図] スタック(上から)3, 7, 1
  • エ [図] スタック(上から)6, 4, 3

出典:平成30年度 春期 基本情報技術者試験 午前 問5

答えと解説を見る

正解:ウ

覚える知識

スタックのpush/popトレース

スタックは後入れ先出し(LIFO)で、最後にプッシュした要素から取り出される。

この問題で必要なこと

スタックはLIFO。操作を順に追うと、PUSH1,5→POP(5)→PUSH7,6,4→POP(4)→POP(6)→PUSH3 となり、下から1,7,3、上から3,7,1。

ひっかけ

FIFOと混同して先頭から取り出す、図の上下を逆に読む。

この知識の出題:本試験系 5 回・免除試験 4 回(公開問題での観測値)

この知識をアプリで解いて覚える レッスン「スタックとキュー(LIFO と FIFO)」で学ぶ

同じ知識の過去問