キュー(queue)
- テクノロジ系
- アルゴリズムとプログラミング
- 基本情報
- 応用情報
- 重要度 ★★★★☆
先に入れたデータから先に取り出すデータ構造。処理の順番を保つために使う。
試験ではこう出る
科目A(旧・午前)ではスタックとセットで「データの出し入れの順序」を問う問題が定番です。図やデータの並びを示して「最後に取り出されるのはどれか」を選ばせる形式が繰り返し出題されます。科目B(旧・午後)のアルゴリズム問題では、幅優先探索やジョブの実行順管理の中でキューが登場します。
現場のたとえ
先入先出の仕掛品置き場です。前工程から流れてきた仕掛品を手前から順に置き、後工程は奥から順に取っていく。先に来たものが先に出るので、置き場に長く滞留するものが出ません。これを逆にして「手前に置いて手前から取る」運用にすると、奥のロットがいつまでも残って品質劣化や期限切れを起こします。在庫管理でいう先入先出法とまったく同じ考え方で、キューが保証しているのは「順番の公平さ」です。
もう少し正確に言うと
キューは先入先出(FIFO:First In First Out)のデータ構造です。データを入れる操作をエンキュー、取り出す操作をデキューと呼びます。実装上は配列の先頭と末尾の位置を指す2つの添字で管理し、末尾が配列の終端に達したら先頭に戻す「リングバッファ(環状キュー)」にすると、データを詰め直す処理が不要になります。OSではプロセスの実行待ち行列、プリンタの印刷待ち、ネットワーク機器のパケットバッファなど、順番を保ちながら待たせたい場面のほぼすべてで使われます。優先度を持たせたものが優先度付きキューです。
よくある勘違い
| 用語 | 違い |
|---|---|
| スタック | 後入先出(LIFO)。最後に入れたものから取り出す |
| リスト | 途中への挿入・削除ができる。キューは両端しか操作しない |
| 待ち行列理論 | キューの「待ち時間」を数学的に求める理論。データ構造そのものではない |
過去問での問われ方
「キューとスタックにデータを入れ、指定の順で取り出したときの出力」を答える形式が定番です。図に矢印を書き込んで順番を追えば確実に解けるため、暗記より手を動かす練習が有効です。
出典:引用時は「年度・期・試験区分・時間区分・問番号」まで明記すること。
関連用語
ミニクイズ
キューに A・B・C の順にデータを入れた後、2回取り出した。次に取り出されるデータはどれか。
正解はC。キューは先入先出(FIFO)なので、取り出される順はA→B→Cです。2回取り出した時点でAとBが出ているため、次はCになります。後入先出のスタックと混同しないよう注意してください。
最終更新:2026-08-20