[0428] スタック,キュー

平成13年度秋期 基本情報処理技術者試験より
スタックとキューの二つのデータ構造がある。次の手続きを順に実行した場合,変数 x に代入されるデータはどれか。ここで,
    データ a をスタックに挿入することを,push(a)
    スタックからデータを取り出すことを,pop()
    データ a をキューに挿入することを,enq(a)
    キューからデータを取り出すことを,deq()

とそれぞれ表す。
    push(a)
    push(b)
    enq(pop())
    enq(c)
    push(d)
    push(deq())
    x ← pop()
a
b
c
d

正解

解説

 スタック(Stack)は,複数のデータを保存するためのデータ構造です。スタックにデータを挿入する操作をプッシュ (push) と呼び,データを取り出す操作を プル (pull) と呼びます。

 キュー (Queue) もスタックと同様に,複数のデータを保存するためのデータ構造です。スタックと異なる点は,スタックが一番最後に挿入されたデータが一番最初に取り出される (LIFO;Last In First Out) のに対して,キューは,最初に入れられたデータが最初に取り出されます(FIFO;First In First Out)。



 それでは,問題文の手順ごとにスタック,キューの状態を調べていきましょう。

push(a)


push(b)


enq(pop())


enq(c)


push(d)


push(deq())


x ← pop()



 よって,変数 x には b が代入されるので,イが正解となります。
※ 解説の内容は執筆時点のものであり,含まれている情報の正確性,妥当性について保証するものではありません。ご注意ください・・・

関連する(かもしれない)問題