基本情報|スタックとキューの違いを操作順で理解する【自作例・確認2問】
「追加したものを取り出す」点は同じでも、スタックとキューは取り出す順が違います。略語の丸暗記だけで迷うなら、操作を1回ずつ進め、取り出したものと、残っているものを分けて書くところから始めましょう。ここでは自作の操作列を図と表にします。
スタックは後入れ先出し、キューは先入れ先出し
スタック(stack)はLIFO:Last In, First Out。最後に追加した要素を先に取り出します。追加する操作をpush(プッシュ)、取り出す操作をpop(ポップ)と呼び、どちらもtop(トップ)側で行います。
キュー(queue)はFIFO:First In, First Out。先に追加した要素を先に取り出します。後ろに追加する操作がenqueue(エンキュー)、先頭から取り出す操作がdequeue(デキュー)です。
出典:NIST「Dictionary of Algorithms and Data Structures」のstack・queue(2026年10月2日確認)。用語の定義を確認し、以下の例は編集部が作成しました。
身近なイメージ:皿の山と、受付の一列
スタックは、上に積んだ皿を上から取る山にたとえられます。後から置いた皿が、先に取れる位置に来ます。キューは、割込みも追越しもない受付の一列です。後から来た人は後ろに並び、先に来た人から受付を受けます。
たとえの前提:皿を途中から抜く操作や、受付の優先対応は、この例にはありません。現実の受付すべてがFIFOになるという意味ではなく、追加・取出しの規則をイメージするための例です。
なぜこの順にするのか
スタックは「直前に積んだものへ戻る」という順を保つために、追加と取出しを同じ側で行います。キューは「先に待ち始めたものから処理する」という順を保つために、追加側と取出し側を分けます。名前の違いではなく、次に処理したい要素をどれにするかが選択の理由です。
キューで途中の要素を好きに選んで取り出せば、到着順は保てません。スタックで一番古い要素を先に取れば、後入れ先出しではありません。問題では、取出しの規則を途中で変えないことが大切です。
自作例:同じ5操作でも、答えが変わる
空のスタックと空のキューを別々に用意し、両方に同じ操作を行います。①赤を追加、②青を追加、③1個取り出す、④緑を追加、⑤1個取り出す。この色名は要素を区別するラベルで、実際の公開問題・教材例題ではありません。
操作④直後:スタック
取出し口(top)は上 ↓
操作③で青を取った後、緑を上へ追加。
操作④直後:キュー
先頭(取出し口) ← / → 末尾(追加口)
次に取る
末尾
操作③で赤を取った後、緑を末尾へ追加。
| 操作 | スタックに残る 底 → top | スタックから取った | キューに残る 先頭 → 末尾 | キューから取った |
|---|---|---|---|---|
| 開始前 | 空 | — | 空 | — |
| ①赤を追加 | 赤 | — | 赤 | — |
| ②青を追加 | 赤、青 | — | 赤、青 | — |
| ③1個取る | 赤 | 青 | 青 | 赤 |
| ④緑を追加 | 赤、緑 | — | 青、緑 | — |
| ⑤1個取る | 赤 | 緑 | 緑 | 青 |
なぜ⑤の取出し結果が違う?④の直後、スタックのtopは緑ですが、キューの先頭は青です。同じ「1個取る」でも、参照する取出し口が違います。また、③で取った要素はもう中にありません。最初に追加した順だけを記憶すると、この削除を見落とします。
紙に書くときの3手順
- 向きを固定する。スタックは「底→top」、キューは「先頭→末尾」と欄の上に書く。
- 1操作につき1行。追加は追加口へ書き、取出しは該当要素を中から消して、別の欄へ記録する。
- 最後に問われたものを確認する。「残っている要素」と「取り出した要素」は別の答え。表の見出しを指で確認する。
混同に注意:優先度に応じて取り出す優先度付きキューは、単純なFIFOのキューと区別します。空のときの取出し動作や容量上限も、問題・実装の前提を確認してください。この例は空からの取出しを含みません。「この構造なら常に速い」といった速度の結論も、順序の定義だけからは出せません。
教材照合:『徹底攻略 基本情報技術者教科書 令和8年度』第1章・紙面83(章別PDFの物理46ページ)。スタック、キュー、操作名称、優先度付きキューとの区別を確認(2026年10月2日)。教材の本文・図版・問題は転載していません。
確認テスト:答えと理由を2問で確認
各問の答えは何度でも選び直せます。正解したら「取出し口がどこか」も言葉にしてみましょう。解答は外部へ送信・保存しません。
問1:操作⑤でスタックから取り出すのは?
問2:操作③の直後、キューに残るのは?
次は、自分で操作を1つ足してみる
操作⑤の後に「黄を追加」「1個取る」を足し、スタックとキューの表を別々に書いてみてください。スタックからは黄、キューからは緑を取り出します。追加直後にどちら側を見るかが説明できれば、略語と動作がつながっています。