スタック(データ構造)
stack/すたっく
ひとことで言うと
最後に入れたものを最初に取り出す、積み重ね式のデータの入れ物です。
📖 もうちょい詳しく
何が新しいの?
スタックは新しい技術ではなく、コンピュータの世界でずっと使われてきた基本のデータの入れ物です。データをどう並べて、どこから出し入れするか、その「決まりごと」のひとつだと考えてください。プログラムを書くうえで、いちばん最初に覚える土台のような存在です。
どうやって動いてるの?
スタックは「最後に入れたものを最初に取り出す」というルールで動きます。これを後入れ先出し(こういれさきだし、英語の頭文字でLIFO)と呼びます。データを上に積む操作をプッシュ、いちばん上を取り出す操作をポップと言います。途中のデータには直接さわれず、必ず上から順番に出し入れします。
何ができるの?
身近なところでは、文書ソフトの「元に戻す(Undo)」がスタックの考え方で動いています。操作をひとつずつ積んでおき、戻すときは最後にやったことから順に取り消すからです。ほかにも、ブラウザの「戻る」ボタンや、プログラムが処理を呼び出した順番を覚えておく仕組みにも使われています。
🌱 身近なたとえ
積み重ねたお皿で例えると分かりやすいです。洗ったお皿を上にどんどん重ねていくと、次に使うのはいちばん上、つまり最後に置いたお皿です。下のほうのお皿を先に取ろうとすると、上が崩れてしまいます。だから自然と「最後に置いたものから使う」流れになります。これがスタックそのものの動きです。
✅ まず覚えるポイント
- スタックは「後入れ先出し(LIFO)」のデータの入れ物です
- データを積むのがプッシュ、いちばん上を取り出すのがポップです
- 出し入れは必ず上からで、途中のデータには直接さわれません
- 「元に戻す(Undo)」や「戻る」ボタンの土台になっています
- 反対のルールを持つキューとセットで覚えると理解が早いです
🧭 よくある勘違い
スタックは「先に入れたものから出る」の?
逆です。先に入れたものから出るのはキューという別の入れ物です。スタックは「後に入れたものから出る」ので、入れた順とは反対に取り出されます。お皿を積むイメージで覚えると間違えにくくなります。
真ん中のデータだけ取り出せるの?
基本のスタックではできません。あくまで上からひとつずつ出し入れするのがルールです。途中のデータを使いたいときは、上にあるものを先に取り出していく必要があります。この「順番が決まっている」点がスタックの特徴です。
🧩 関連して覚えると楽な言葉
- キュー: 先に入れたものから出る入れ物。スタックの反対のルールです
- 配列: データを順番に並べて入れておく、基本のデータの入れ物です
- 再帰: 自分自身を呼び出す処理。内部でスタックが使われています
- アルゴリズム: データの処理手順。スタックはその部品になります
🏁 ひとことでまとめ
スタックは、最後に置いたものから順に取り出す「積み重ね式」の入れ物で、取り消し履歴などに役立ちます。
TERM SEARCH
ほかの用語を調べる
検索ボックスを準備中…