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

基本情報技術者試験 科目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 回(公開問題での観測値)

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

同じ知識の過去問