平成18年 春期 基本情報技術者 午前 問12

空の状態のキューとスタックの二つのデータ構造がある。
次の手続を順に実行した場、変数x に代入されるデータはどれか。
ここで、
 データy をスタックに挿入することをpush (y )、
 スタックからデータを取り出すことをpop ( )、
 データy をキューに挿入することをenq (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 に代入する。(イ)


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

キーワードの解説
  • キュー
    一時的なデータの格納領域で、格納したのと同じ順でデータを取り出すことができます。
    (First-In First-Out、FIFO)
  • スタック
    一時的なデータの格納領域で、格納したのと逆の順でデータを取り出すことができます。
    (Last-In First-Out、LIFO)

もっと、「キュー」について調べてみよう。

戻る 一覧へ 次へ