アルゴリズムとプログラミング
基本情報技術者試験 科目A免除 修了試験 20210124 実施分 問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
出典:基本情報技術者試験 科目A免除 修了試験 20210124 実施分 問7
答えと解説を見る
正解:イ
覚える知識
キューとスタックの操作トレース
スタックは後入れ先出し、キューは先入れ先出しのデータ構造である。
この問題で必要なこと
スタックはLIFO、キューはFIFOで動く。push(a),push(b),enq(pop()=b),enq(c),push(d),push(deq()=b),pop()=bとなる。
ひっかけ
キューの先頭(b)とスタックの先頭(d)を取り違えるとdと誤答する。
この知識の出題:本試験系 0 回・免除試験 5 回(公開問題での観測値)