アルゴリズムとプログラミング
基本情報技術者試験 科目A免除 修了試験 201001 実施分 問5
空の状態のキューとスタックの二つのデータ構造がある。次の手続を順に実行した場合,変数 x に代入されるデータはどれか。ここで,データ y をスタックに挿入することを push(y),スタックからデータを取り出すことを pop(),データ y をキューに挿入することを enq(y),キューからデータを取り出すことを deq(),とそれぞれ表す。
push(a)
push(b)
enq(pop())
enq(c)
push(d)
push(deq())
x ← pop()
答えを選ぶ
出典:基本情報技術者試験 科目A免除 修了試験 201001 実施分 問5(問題文は IPA の公開問題。解説は当サイト作成)
答えと解説を見る
正解:イ
覚える知識
キューとスタックの操作トレース
スタックは後入れ先出し、キューは先入れ先出しで要素を取り出すデータ構造である。
この問題で必要なこと
スタックはLIFO、キューはFIFOで取り出す。操作を順に追うと、最後にpopされるのはbである。
ひっかけ
スタックとキューの取り出し順を混同すると、aやdなど別の値を選んでしまう。
この知識の出題:本試験系 0 回・免除試験 5 回(公開問題での観測値)