戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

基本情報技術者 2013年 秋期 午前(科目A)05


問題文

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

選択肢

1
2
5(正解)
6

##: 待ち行列の操作(ENQ/DEQ)の結果を求める問題【午前2 解説】

要点まとめ

  • 結論:次に行うDEQで取り出される値は5です。操作列を順に追うと先頭に残るのが値5で、正解はです。
  • 根拠:待ち行列はFIFO(先入れ先出し)であるため、ENQ/DEQを順に適用すると取り出し順が確定し、5が次に出ることになります。
  • 差がつくポイント:スタックと混同して後入れを先に取り出す誤解やDEQの回数を数え間違うミスに注意し、操作後の状態を逐一書くことが有効です。

正解の理由

待ち行列(キュー)はFIFO(先入れ先出し)です。与えられた操作を順に実行すると各DEQで先頭要素が取り出され、最終的に残る先頭要素が次に取り出されます。シミュレーションの結果、次に取り出されるのは値5であり、選択肢の中では(5)が正解です。

よくある誤解

  • DEQの回数不足や過剰を見落として、まだ残っている要素の順序を誤ること。
  • スタック(LIFO)と混同して「最後に入れた6が出る」と考えてしまうこと。
  • 操作をまとめて概念的に考えすぎて、各ステップでの状態変化を書き出さないために誤答すること。

解法ステップ

  1. 初期状態:待ち行列 Q = []
  2. ENQ 1 → Q = [1]
  3. ENQ 2 → Q = [1, 2]
  4. ENQ 3 → Q = [1, 2, 3]
  5. DEQ → 1 を取り出す、Q = [2, 3]
  6. ENQ 4 → Q = [2, 3, 4]
  7. ENQ 5 → Q = [2, 3, 4, 5]
  8. DEQ → 2 を取り出す、Q = [3, 4, 5]
  9. ENQ 6 → Q = [3, 4, 5, 6]
  10. DEQ → 3 を取り出す、Q = [4, 5, 6]
  11. DEQ → 4 を取り出す、Q = [5, 6]
  12. 次のDEQで先頭の5が取り出される → 答えは5(ウ)
(各ステップで常に先頭を取り出すのがDEQである点に注意してください。)

選択肢別の誤答解説

  • ア: 1 — 操作列の最初のDEQで1は取り出されますが、その後もENQ/DEQが続くため1は既に出ており、次に出る値ではありません。
  • イ: 2 — 2も途中で取り出されます(2は2回目のDEQで出る)が、最後に残る先頭ではないため誤りです。
  • ウ: 正解(5) — シミュレーションの通り、最後に残った先頭要素が5であり、次のDEQで取り出されます。
  • エ: 6 — 6は最後に入れられた要素ですが、FIFOでは先に入った5が先に出るため、6はその次に出ます。スタックと混同すると6を選びがちです。

補足コラム

  • キューの基本性質:入れる操作をENQ(enqueue)、出す操作をDEQ(dequeue)と呼び、実装は配列の頭尾を使う環状バッファや連結リストが一般的です。
  • 計算量:ENQ/DEQはいずれも適切に実装すればO(1)で実行可能です。
  • 実務での利用例:プリントキュー、タスクスケジューリング、幅優先探索(BFS)などでキューが使われます。

FAQ

Q1: DEQを空のキューで実行したらどうなる?
A1: 多くの実装では「アンダーフロー(取り出す要素がない)」としてエラー扱いになります。問題文で空でのDEQが出てこないか確認してください。
Q2: スタックとキューの違いを一言で教えてください。
A2: スタックはLIFO(後入れ先出し)、キューはFIFO(先入れ先出し)です。問題文の操作名や文脈で判断します。
Q3: 素早く正しく解くコツは?
A3: 各操作後のキューの状態を短くメモする(例:[1,2,3])だけで確実です。頭の中だけで追うとミスが出やすいです。

関連キーワード: 待ち行列、FIFO、キュー、ENQ、DEQ、データ構造、操作シミュレーション、アルゴリズム、試験対策
← 前の問題へ次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

基本情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について