最終更新日:2026年9月8日
fe fe-technology data-structure algorithm
まず結論
キューとは、先に入れたデータから先に取り出すデータ構造です。
基本情報技術者試験では、キューは FIFO(First In, First Out:先入れ先出し) として出題されます。
スタックが「最後に入れたものを先に出す」のに対して、キューは「先に並んだものから順番に処理する」と考えると判断しやすいです。
スタックとの違いを先に整理したい場合は、スタックとキューの違い|LIFOとFIFOを見分ける方法 を確認すると、同じデータを入れたときの取り出し順を比較できます。
直感的な説明
キューは、順番待ちの列をイメージすると分かりやすいです。
例えば、レジに並ぶ人を考えます。
- 先に並んだ人から会計する
- 後から来た人は列の後ろに並ぶ
- 途中で順番を飛ばさない
このように、入った順番を守って処理する仕組みがキューです。
英語では、待ち行列のことを queue と言います。
FEでは、この日常的な「列」のイメージを、データ構造として理解できるかが大切です。
定義・仕組み
キューは、データを入れる場所と取り出す場所が分かれているデータ構造です。
主な操作は次の2つです。
| 操作 | 初心者向けの読み替え | 意味 |
|---|---|---|
| enqueue(エンキュー) | データを入れる・追加する | キューの後ろにデータを入れる |
| dequeue(デキュー) | データを取り出す | キューの前からデータを取り出す |
例えば、空のキューに A、B、C の順にデータを入れるとします。
enqueue A → [A]
enqueue B → [A, B]
enqueue C → [A, B, C]
この状態で取り出すと、先に入れた A から出てきます。
dequeue → A
dequeue → B
dequeue → C
つまり、キューでは 入れた順番と取り出す順番が同じ になります。
キューは、基本情報技術者試験の「アルゴリズムとプログラミング」や「データ構造」と関係が深いテーマです。公式の出題範囲は、IPA:基本情報技術者試験 から確認できます。
科目Aでどう出る?
科目Aでは、キューはデータ構造の基本用語として出やすいです。
特に見るべきポイントは次の3つです。
- キューは FIFO
- 先に入れたデータを先に取り出す
- スタックとは逆の取り出し順になる
選択肢で次のような表現があれば、キューの説明として正しい可能性が高いです。
先に格納したデータから順に取り出す。
反対に、次のような表現はスタックの説明です。
最後に格納したデータから順に取り出す。
ここを取り違えると、かなり簡単な問題でも落としやすいです。
さらに、選択肢ではキュー以外のデータ構造の説明が混ざることがあります。次のように切り分けると判断しやすいです。
| 選択肢の表現 | 対応する考え方 |
|---|---|
| 最後に入れたものを最初に取り出す | スタック(LIFO) |
| 最初に入れたものを最初に取り出す | キュー(FIFO) |
| 添字を使って特定のデータを参照する | 配列 |
| ポインタなどで要素同士をつなぐ | リスト系のデータ構造 |
アルファベットを丸暗記するよりも、「データを入れた順番」と「取り出す順番」がどうなっているかを見るほうが安定します。
FEでは、キュー単体の定義だけでなく、スタックとの違いで問われることが多いと考えるとよいです。
enqueue や dequeue という言葉に慣れていない場合は、まず「データを入れる」「データを取り出す」と日本語へ置き換えて読みます。
科目Bでどう使う?
科目Bでは、キューという言葉が直接出なくても、先に入れたものから処理する流れとして現れることがあります。
例えば、次のような処理です。
未処理のデータを順番に取り出す
処理したいデータを末尾に追加する
先頭のデータから確認する
このような処理が出たら、キューの考え方が関係している可能性があります。
科目Bで大切なのは、用語を暗記することよりも、どこから入れて、どこから取り出しているか を追うことです。
読むときは、次の順で確認すると整理しやすいです。
- データを追加している場所を見る
- データを取り出している場所を見る
- 取り出し順が「先に入れた順」か確認する
配列でキューを表す問題では、先頭位置や末尾位置を表す変数が出ることもあります。
例えば、front が取り出し位置、rear が追加位置を表すような形です。
この場合は、変数名を丸暗記するよりも、どちらが取り出し側で、どちらが追加側か を処理の流れから確認するのが安全です。
よくある誤解・混同
キューで一番混同しやすいのは、スタックです。
| 用語 | 取り出し順 | イメージ |
|---|---|---|
| スタック | 後入れ先出し | 積み重ねた皿 |
| キュー | 先入れ先出し | レジの順番待ち |
スタックは LIFO です。
キューは FIFO です。
アルファベットだけで覚えると混乱しやすいので、次のように日本語で覚えると安定します。
- スタック:後から入れたものが先に出る
- キュー:先に入れたものが先に出る
enqueueとdequeueを逆に覚える
enqueue(エンキュー)は「データを列の後ろに入れる」、dequeue(デキュー)は「列の前からデータを取り出す」と日本語へ置き換えると整理しやすくなります。
また、キューは「優先度付きキュー」と混同することもあります。
通常のキューは、入った順番で処理します。
一方、優先度付きキューは、順番だけでなく優先度によって取り出すデータが変わります。
FEの基本では、まず通常のキューを FIFO として押さえるのが大切です。
まとめ(試験直前用)
- キューは 先入れ先出し(FIFO) のデータ構造
enqueue(エンキュー)は「データを入れる」、dequeue(デキュー)は「データを取り出す」- スタックは後入れ先出し、キューは先入れ先出し
- 科目Aでは「入れた順と取り出す順」を見て選択肢を切る
- 科目Bでは「どこから入れて、どこから出すか」を追う
- 判断に迷ったら、レジの順番待ちを思い出す
スタックとキューを同じ例で比較したい場合は、スタックとキューの違い に戻ると整理しやすくなります。