平成26年春期試験問題 午前問7

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
空の状態のキューとスタックの二つのデータ構造がある。次の手続を順に実行した場合,変数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をスタックに挿入する
    07_1.png
  2. push(b)…bをスタックに挿入する
    07_2.png
  3. enq(pop())…スタックから取り出したデータ(b)をキューに挿入する
    07_3.png
  4. enq(c)…cをキューに挿入する
    07_4.png
  5. push(d)…dをスタックに挿入する
    07_5.png
  6. push(deq())…キューから取り出したデータ(b)をスタックに挿入する
    07_6.png
  7. x←pop()…スタックから取り出したデータ(b)をxに代入する
    07_7.png
したがってxに代入されるデータはbになります。

この問題の出題歴


Pagetop