IPA過去問ドリル

平成30年度 秋期 基本情報技術者試験 午前 問5

テクノロジ/アルゴリズム

待ち行列に対する操作を,次のとおり定義する。 ENQ n:待ち行列にデータnを挿入する。 DEQ :待ち行列からデータを取り出す。 空の待ち行列に対し,ENQ 1,ENQ 2,ENQ 3,DEQ,ENQ 4,ENQ 5,DEQ,ENQ 6,DEQ,DEQの操作を行った。次にDEQ操作を行ったとき,取り出されるデータはどれか。

出典:平成30年度 秋期 基本情報技術者試験 午前 問5

正解:ウ

解説

待ち行列(キュー)はFIFO(先入れ先出し)の構造なので,挿入した順序のままデータが取り出されます。ENQ1,ENQ2,ENQ3で待ち行列は[1,2,3]となり,最初のDEQで1が取り出されて[2,3]になります。続けてENQ4,ENQ5で[2,3,4,5]となり,2回目のDEQで2が取り出されて[3,4,5]になります。ENQ6で[3,4,5,6]となり,3回目のDEQで3,4回目のDEQで4が取り出されて[5,6]が残るので,次のDEQで取り出されるのは5です。

選択肢ごとの解説

  • 誤り。1は最初のDEQ操作で既に取り出されています。
  • 誤り。2は2回目のDEQ操作で既に取り出されています。
  • 正しい。手順を順に追うと,5回目のDEQ操作で取り出されるデータは5です。
  • 誤り。6はまだ待ち行列に残りますが,5より後に取り出されるデータであり,この時点で取り出される値ではありません。
基本情報技術者の過去問を演習モードで解く