スタックは要素の挿入と削除がリストの先頭だけで行われるLIFOのデータ構造です。LIFO(Last In, First Out) とは「最後に入ったものが最初に出てゆく」という意味です。

積み重なった本をイメージするとわかりやすいです。最初に置かれたものは底にあって、最後に置かれたものは最上に位置します。最初に置かれたものを取り出すには最後に置かれたものを順番に取り出していかなければなりません。

スタックでは要素を挿入する(積む)操作を push 、要素を削除する(取り出す)操作を pop と言います。またリストの先頭(頂上)を top 、終端(底)を bottom と呼びます。

スタックの図

スタックは時系列にデータを保持したいときによく使われるデータ構造です。テキストエディタにある「元に戻す」機能が良い例です。