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

基本情報技術者試験 科目A免除 修了試験 20230723 実施分 問5

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

出典:基本情報技術者試験 科目A免除 修了試験 20230723 実施分 問5(問題文は IPA の公開問題。解説は当サイト作成)

答えと解説を見る

正解:イ

覚える知識

キューとスタックの操作トレース

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

この問題で必要なこと

スタックはLIFO、キューはFIFOとして手続を順に追う。結果は push a,b → pop(b)をenq → enq c → push d → deq(b)をpush → pop で b。

ひっかけ

LIFOとFIFOの取出し順を取り違えると、a・c・dのいずれかを選ばせる。

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

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

同じ問題が出た回

同じ知識の過去問