データ構造 (全53問中20問目)
No.20
空の状態のキューとスタックの二つのデータ構造がある。次の手続を順に実行した場合,変数xに代入されるデータはどれか。ここで,手続きに引用している関数は,次のとおりとする。
〔関数の定義〕
〔手続〕
〔関数の定義〕
- push(y):データyをスタックに積む。
- pop():データをスタックから取り出して,その値を返す。
- enq(y):データyをキューに挿入する。
- deq():データをキューから取り出して,その値を返す。
〔手続〕
- push(a)
- push(b)
- enq(pop())
- enq(c)
- push(d)
- push(deq())
- x ← pop()
出典:平成26年春期 問7
- a
- b
- c
- d
- [出題歴]
- 基本情報技術者 H13秋期 問13
- 基本情報技術者 H18春期 問12
- ソフトウェア開発技術者 H16春期 問10
分類
テクノロジ系 » アルゴリズムとプログラミング » データ構造
正解
イ
解説
スタックは後入先出し、キューは先入先出しのデータ構造です。設問の手続きの実行するとスタックとキューの内容は次のように変化していきます。
- push(a)…aをスタックに挿入する
- push(b)…bをスタックに挿入する
- enq(pop())…スタックから取り出したデータ(b)をキューに挿入する
- enq(c)…cをキューに挿入する
- push(d)…dをスタックに挿入する
- push(deq())…キューから取り出したデータ(b)をスタックに挿入する
- x←pop()…スタックから取り出したデータ(b)をxに代入する