問題
空の状態のキューとスタックの二つのデータ構造がある。次の手続を順に実行した場合、変数 x に代入されるデータはどれか。ここで、手続で引用している関数は、次のとおりとする。 〔関数の定義〕 push(y):データ y をスタックに積む。 pop():データをスタックから取り出して、その値を返す。 enq(y):データ y をキューに挿入する。 deq():データをキューから取り出して、その値を返す。 〔手続〕 push(a) push(b) enq(pop()) enq(c) push(d) push(deq()) x ← pop()
選択肢
- 1a
- 2b
- 3c
- 4d
正解
2. b
詳しい解説を見る解説を閉じる
解説
スタックは後入れ先出し、キューは先入れ先出しである。push(a)、push(b) でスタックは [a,b]。enq(pop()) で b を取り出しキューへ→キュー [b]、スタック [a]。enq(c) でキュー [b,c]。push(d) でスタック [a,d]。push(deq()) でキュー先頭の b を取り出しスタックへ→スタック [a,d,b]。x←pop() で最後に積んだ b が取り出される。よって「イ」が正しい。(出典: 平成26年度 春期 基本情報技術者試験 午前 問7)
一問一答
科目A 180問+科目B 60問