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

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

スタック 1,2 があり,図の状態になっている。関数 f はスタック 1 からポップしたデータをそのままスタック 2 にプッシュする。関数 g はスタック 2 からポップしたデータを出力する。b,c,d,a の順番に出力するためには,関数をどの順で実行すればよいか。
スタック 1:4 段のスタック。上から a,b,c,d(d が最下段)。 スタック 2:空の 4 段スタック(点線で段が区切られている)。
  • ア f, f, g, f, f, g, g, g
  • イ f, f, g, f, g, f, g, g
  • ウ f, f, g, f, g, g, f, g
  • エ f, f, g, g, f, f, g, g

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

答えと解説を見る

正解:イ

覚える知識

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

スタックは後入れ先出し(LIFO)のデータ構造である。

この問題で必要なこと

スタック1から取り出してスタック2に積み、後入れ先出しで出力順 b,c,d,a になる操作列をトレースして求める。

ひっかけ

FIFOの感覚で操作列を考えると、出力順序が合わない選択肢を選ぶ。

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

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

同じ知識の過去問