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

問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
  • [出題歴]
  • 基本情報技術者 H13秋期 問13
  • 基本情報技術者 H26春期 問7
  • ソフトウェア開発技術者 H16春期 問10

分類

テクノロジ系 » アルゴリズムとプログラミング » データ構造

正解

解説

スタックは後入先出し、キューは先入先出しのデータ構造です。設問の手続きの実行するとスタックとキューの内容は次のように変化していきます。
  1. push(a)…aをスタックに挿入する
    12_1.png/image-size:238×117
  2. push(b)…bをスタックに挿入する
    12_2.png/image-size:238×117
  3. enq(pop())…スタックから取り出したデータ(b)をキューに挿入する
    12_3.png/image-size:238×117
  4. enq(c)…cをキューに挿入する
    12_4.png/image-size:238×117
  5. push(d)…dをスタックに挿入する
    12_5.png/image-size:238×117
  6. push(deq())…キューから取り出したデータ(b)をスタックに挿入する
    12_6.png/image-size:238×117
  7. x←pop()…スタックから取り出したデータ(b)をxに代入する
    12_7.png/image-size:238×117
したがってxに代入されるデータはbになります。
© 2010-2024 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop