スタック(Stack)
スタック(Stack)とは、後から入れたデータを先に取り出すデータ構造(データの管理方式)のことです。
スタックは、机の上に本をどんどん「積み重ねた山」と同じ動きをします。
- 後入先出(LIFO:Last-In, First-Out)
- 新しい本は、常に山の一番上に重ねていきます。
- 本を取り出すときは、一番上にある(最後に乗せた)本からしか取れません。
- この「後に入れたものを先に出す」仕組みをLIFO(ライフォ)またはFILO(First-In, Last-Out)と呼びます。
スタックにデータを出し入れする操作の名前です。キューの用語と混ざらないように注意しましょう。
- プッシュ(Push)
- スタックの一番上にデータを追加することです。
- ポップ(Pop)
- スタックの一番上からデータを取り出す(削除する)ことです。
ITパスポートや基本情報の試験では、「スタックがどんな処理に向いているか」という特徴も問われます。
- ブラウザの「戻る」ボタン
- Aページ → Bページ → Cページ と進んだあと、「戻る」を押すと直前に見たBページに戻ります。これもスタックの仕組みです。
- プログラムの「元に戻す(Undo)」機能
- Excelなどで入力を間違えたとき、直前の操作をキャンセルして1つ前の状態に戻す処理です。
- 関数の呼び出し(基本情報向け)
- プログラムで別の処理(関数)を実行し、終わったら「呼び出し元の場所」へ戻るために、元の場所の記録をスタックに保存します。