アルゴリズムとプログラミング
平成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 回(公開問題での観測値)