
結論:スタック=後入れ先出し(LIFO)、キュー=先入れ先出し(FIFO)。データの出し入れの順序が真逆
スタックは「最後に入れたものを最初に取り出す」構造、キューは「最初に入れたものを最初に取り出す」構造です。
どちらもデータを一時的にためておく入れ物ですが、出し入れの順番だけが逆になっています。
この「順序が真逆」というイメージさえ掴めば、試験でどちらか迷うことはもうありません。本記事では仕組み・具体例・練習問題まで3分で押さえられるよう整理しました。
今回は、ITパスポートと基本情報技術者試験で頻出のデータ構造、「スタック」と「キュー」の違いを、仕組みからやさしく解説していきます。
「LIFOとFIFO、どっちがどっちか分からなくなる」「操作の名前まで覚えきれない」——データ構造を学び始めた方から本当によく聞く悩みです。でも、出し入れの順序のイメージさえ掴めれば、もう試験で迷うことはありません。3分で完了するので、サクッといきましょう。
この記事でわかること
・スタック(LIFO)とキュー(FIFO)の仕組みと違い
・それぞれの具体例(皿の重ね置き・レジの行列など)
・図解で「出し入れの順序」をひと目で理解
・試験で確実に1点取るための練習問題3問
・実務(コールスタック・BFSなど)での使われ方
1. スタック(Stack)とは
仕組み
スタックとは、最後に入れたデータを最初に取り出すデータ構造です。この出し入れの順序をLIFO(Last In First Out:後入れ先出し)と呼びます。
ポイントは「出入り口が1つしかない」こと。データを積み上げていき、取り出すときは一番上(=最後に積んだもの)からしか取れません。データを積む操作をpush(プッシュ)、一番上を取り出す操作をpop(ポップ)と呼びます。
具体例
机の上に皿を重ねて置いていく様子をイメージしてください。皿を上へ上へと重ねていき(push)、使うときは一番上の皿から取ります(pop)。下のほうにある皿を先に取ろうとすると、上の皿が崩れてしまいますよね。
身近なソフトの動作でいえば、ブラウザの「戻る」ボタンや、文書編集の「元に戻す(Undo)」がまさにスタックです。直前の操作から順にさかのぼって取り消していく——「最後にやったことから戻す」という動きが、後入れ先出しそのものです。
講師視点|スタックの誤解と混同ポイント
僕が初学者に説明する際は、以下のような比喩で伝えています。
ポイント
・積み重ねた皿やお盆(一番上からしか取れない)
・ブラウザの「戻る」ボタン(直前に見たページへさかのぼる)
・文書編集のUndo(最後の操作から順に取り消す)
「スタック=データを整列して並べておくもの」という誤解をする方が結構多い印象があります。
スタックは並び替えのための構造ではなく、あくまで取り出す順番が「後入れ先出し」に固定される入れ物、という点を押さえておきましょう。

2. キュー(Queue)とは
仕組み
キューとは、最初に入れたデータを最初に取り出すデータ構造です。この出し入れの順序をFIFO(First In First Out:先入れ先出し)と呼びます。
スタックと違い、キューは入り口と出口が別々にあります。片方の端からデータを入れ、反対側の端から取り出す——だから入れた順番がそのまま取り出す順番になります。データを入れる操作をenqueue(エンキュー)、取り出す操作をdequeue(デキュー)と呼びます。
具体例
スーパーのレジの行列をイメージしてください。先に並んだ人から順にレジを通っていき、後から来た人は列の最後尾に付きます。割り込みがなければ、並んだ順にきちんと処理される——これがキューです。
コンピュータの身近な例では、印刷ジョブが分かりやすいです。複数の印刷指示を出すと、送信した順に1つずつ印刷されていきます。「来た順に、公平にさばく」という動きが先入れ先出しそのものです。
講師視点|「キュー=順番待ちの列」の方向感をつかむコツ
僕が初学者に説明する際は、以下のような比喩で伝えています。
ポイント
・スーパーやATMの順番待ちの行列(先に並んだ人から順に)
・プリンターの印刷ジョブ(送信した順に印刷される)
・遊園地のアトラクションの待機列(割り込みなしで先頭から)
「キュー」という言葉自体が英語で「順番待ちの列」を意味します。
後から入れたものが先に出ると誤解する初学者がいますが、それはスタックの動き。キューは「並んだ順に出ていく」列。という方向感を持ちましょう!

3. スタックとキューの違い【図解+比較表】
2つの違いを、まずは出し入れの流れを対比した図で確認しましょう。
表でも整理しておきましょう。
| 項目 | スタック(Stack) | キュー(Queue) |
|---|---|---|
| 出し入れの順序 | LIFO(後入れ先出し) | FIFO(先入れ先出し) |
| 出入り口 | 1つ(同じ端で出し入れ) | 2つ(入口と出口が別) |
| 操作名 | push(入れる) / pop(取り出す) | enqueue(入れる) / dequeue(取り出す) |
| 身近な例 | 皿の重ね置き・ブラウザの戻る・Undo | レジの行列・印刷ジョブ |
| 主な用途 | 関数呼び出し・式評価・Undo | タスク処理・BFS・バッファ |
ポイント
・同じ「データをためる入れ物」でも、後入れ先出しはスタック、先入れ先出しはキュー
・スタック=push/pop、キュー=enqueue/dequeue、と操作名もセットで覚える
・出入り口の数が違う(スタック:1つ vs キュー:2つ)
「後入れ先出しはスタック、先入れ先出しはキュー」という対応を覚えておくと、応用問題でもブレません。
4. 試験対策|練習問題で確認しよう
以下は、IPA過去問の傾向を踏まえて作成したオリジナルの練習問題です(IPA公式の過去問そのものではありません)。本番形式に慣れるための練習として活用してください。実際の過去問はIPA公式サイトで公開されています。
練習問題①(ITパスポートレベル)
(問題) 最後に格納したデータが最初に取り出されるデータ構造はどれか。
ア.キュー
イ.配列
ウ.スタック
エ.リスト
👉 正解:ウ(スタック)
解説:「最後に格納したデータが最初に取り出される」=LIFO(後入れ先出し)がキーワード。キュー(ア)は先入れ先出し(FIFO)なので逆、配列(イ)は添字で任意の位置にアクセスする構造、リスト(エ)は要素を数珠つなぎにした構造なので、出し入れの順序を固定するスタックが正解です。
練習問題②(基本情報レベル)
(問題) 空のスタックに対し、push(1)、push(2)、push(3)、pop、push(4)、pop、pop の順に操作を行った。この後にもう一度 pop を実行したとき、取り出される値はどれか。
ア.1
イ.2
ウ.3
エ.4
👉 正解:ア(1)
解説:順に追うと、push(1)(2)(3)でスタックは下から[1,2,3]。1回目のpopで一番上の3が出て[1,2]。push(4)で[1,2,4]。2回目のpopで4が出て[1,2]。3回目のpopで2が出て[1]。残っているのは1だけなので、次のpopで取り出されるのは1です。後入れ先出しを一つずつ丁寧に追うのがコツです。
練習問題③(混同しやすいポイント)
(問題) 次のうち、キューの説明として最も適切なものはどれか。
ア.最後に入れた要素から順に取り出す、後入れ先出しのデータ構造
イ.最初に入れた要素から順に取り出す、先入れ先出しのデータ構造
ウ.添字(インデックス)を指定して任意の位置の要素へ直接アクセスできるデータ構造
エ.各要素が次の要素への参照を持ち、数珠つなぎに連結されたデータ構造
👉 正解:イ
解説:アはスタック(LIFO)、ウは配列、エは連結リストの説明です。「最初に入れた要素から」「先入れ先出し」という表現を見たら、キューと判断できればOKです。紛らわしい配列・リストと混ざらないよう、「出し入れの順序が決まっているのがスタック・キュー」と押さえておきましょう。
5. 実務ではどう使われている?
試験対策だけでなく、現場でも土台として頻繁に登場するデータ構造です。
スタックは、プログラムの関数呼び出しの管理(コールスタック)で使われます。関数が別の関数を呼ぶたびに情報が積まれ、処理が終わると上から戻っていく仕組みです。ほかにも計算式の評価や、アプリのUndo機能の内部でも活躍します。
キューは、順番に処理したいタスクの管理と相性が抜群です。Webサーバーへのリクエスト処理や、グラフを幅優先で探索するBFS(幅優先探索)、データを一時的にためるバッファなど、「来た順にさばく」場面で幅広く使われています。クラウドのメッセージキューサービスも、内部の考え方はこのFIFOそのものです。
6. まとめ|一言で覚えるポイント
ポイント
・スタック=後入れ先出し(LIFO)、操作はpush/pop
・キュー=先入れ先出し(FIFO)、操作はenqueue/dequeue
・後入れ先出しはスタック、先入れ先出しはキューで分担
ITパスポートや基本情報の試験では、「LIFOはスタック、FIFOはキュー」さえ押さえておけば確実に1点取れる定番問題です。科目B(アルゴリズム)では、push/popを一つずつ追う操作トレース問題も出るので、練習問題②のように手を動かして順序を確認する練習をしておくと安心です。
それではまた!
一人で悩まず、相談しながら合格を目指したい方へ
「独学だと続かない…」「分からない用語を気軽に質問できる人が欲しい…」
そんな方向けに、エンジニア歴20年・現役講師の僕が運営する無料LINEコミュニティを用意しています。資格学習のコツ・勉強法・キャリア相談まで、気軽に質問できる場所です。
▶ ITキャリアラボに参加する(無料)
ITキャリアラボ
-

【無料】ITの悩みを気軽に相談できるコミュニティ・ITキャリアラボ
IT業界を目指すあなたへ|「ITキャリアラボ」無料コミュニティのご案内 「IT業界に転職したいけど、何から始めればいいかわからない…」「資格の勉強が続かない…」「相談できる人がいない…」 そんな不安、 ...
続きを見る