オリジナル模擬試験2 問5

問5

スタックとキューの二つのデータ構造がある。次の手続を順に実行した場合,変数 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
  • [出典]
  • 基本情報技術者 H18春期 問12

分類

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

正解

解説

スタックは後入先出し(LIFO),キューは先入先出し(FIFO)の特徴をもつデータ構造です。

スタックとキューをひとつずつ用意して処理の経過を追っていきます。
[push(a)]
 スタック | a ←|
[push(b)]
 スタック | a, b ←|
[enq(pop())]
 スタック | a |→b
 キュー  |→ b |
[enq(c)]
 スタック | a |
 キュー  |→ c, b |
[push(d)]
 スタック | a, d ←|
 キュー  |→ c, b |
[push(deq())]
 キュー  | c |→b
 スタック | a, d, b ←|
[x ← pop()]
 スタック | a, d |→b
 x ← b
© 2010-2024 応用情報技術者試験ドットコム All Rights Reserved.

Pagetop