空の状態のキューとスタックの二つのデータ構造がある。
次の手続を順に実行した場、変数x に代入されるデータはどれか。
ここで、
データy をスタックに挿入することをpush (y )、
スタックからデータを取り出すことをpop ( )、
データy をキューに挿入することをenq (y )、
キューからデータを取り出すことをdeq ( )、
とそれぞれ表す。
push (a)
push (b)
enq (pop ( ))
enq (c)
push (d)
push (deq ( ))
x ← pop ( )
答え イ
【解説】
初期状態は、スタック、キューはともにからである。
- push (a)
スタックに“a”が格納される。
- push (b)
スタックに“b”が格納される。
- enq (pop ( ))
pop ( )でスタックの最後に格納した“b”を取り出し、enq ( )でキューに格納する。
- enq (c)
キューに“c”を格納する。
- push (d)
スタックに“d”が格納される。
- push (deq ( ))
deq ( )でキューの先頭の“b”を取り出し、push ( )でスタックに格納する。
- x ← pop ( )
スタックの最後に格納した“b”を取り出し、x に代入する。(イ)
【キーワード】
・キュー
・スタック
【キーワードの解説】
- キュー
一時的なデータの格納領域で、格納したのと同じ順でデータを取り出すことができます。
(First-In First-Out、FIFO)
- スタック
一時的なデータの格納領域で、格納したのと逆の順でデータを取り出すことができます。
(Last-In First-Out、LIFO)
もっと、「キュー」について調べてみよう。
戻る
一覧へ
次へ
|