平成26年 春期 基本情報技術者 午前 問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


答え イ


解説
初期状態は、スタック、キューはともにからである。

  1. push (a)
    スタックに“a”が格納される。
  2. push (b)
    スタックに“b”が格納される。
  3. enq (pop ( ))
    pop ( )でスタックの最後に格納した“b”を取り出し、enq ( )でキューに格納する。
  4. enq (c)
    キューに“c”を格納する。
  5. push (d)
    スタックに“d”が格納される。
  6. push (deq ( ))
    deq ( )でキューの先頭の“b”を取り出し、push ( )でスタックに格納する。
  7. x ← pop ( )
    スタックの最後に格納した“b”を取り出し、x に代入する。(イ)


キーワード
・キュー
・スタック

キーワードの解説

戻る 一覧へ 次へ