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

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

空の状態のキューとスタックの二つのデータ構造がある。次の手続を順に実行した場合,変数 x に代入されるデータはどれか。ここで,手続で引用している関数は,次のとおりとする。 〔関数の定義〕 push(y):データ y をスタックに積む。 pop():データをスタックから取り出して,その値を返す。 enq(y):データ y をキューに挿入する。 deq():データをキューから取り出して,その値を返す。 〔手続〕 push(a) push(b) enq(pop()) enq(c) push(d) push(deq()) x ← pop()
  • ア a
  • イ b
  • ウ c
  • エ d

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

答えと解説を見る

正解:イ

覚える知識

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

スタックは後入れ先出し、キューは先入れ先出しのデータ構造である。

この問題で必要なこと

スタックはLIFO、キューはFIFOとして手続を順にトレースする。最終的にxにはbが入る。

ひっかけ

スタックとキューの取出し順を取り違えると、aやdなど別の値になる。

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

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

同じ知識の過去問