スタック
データ構造だよ
後に入れたものが先に出るよ
「キュー」の逆だよ
簡単に書くよ
スタック(英:stack)とは
後に入れたものが先に出る構造になっている何か
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として「先入先出(FIFO)」と「後入先出(LIFO)」について説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
先入先出(FIFO)は「先に入ったものが先に出てくる」です。
後入先出(LIFO)は「後に入ったものが先に出てくる」です。
例えば、そうですね。
ここに2つのトンネルが ありました。
1つは通り抜け可能な普通のトンネルです。
入った方と逆側から出てこれます。
もう1つは中が行き止まりになっている偽物トンネルです。
通り抜けできないので、入った方から戻って出てくるしかありません。
ある日のことです。
ピヨ太君、ピヨ子さん、ピヨ太ママが、それぞれの車でドライブに出かけました。
道が狭いので、縦一列に並んで爆走しています。
トンネルが見えてきました。
ピヨ太君、ピヨ子さん、ピヨ太ママの順番でトンネルに入ります。
おっと、今入ったトンネルは普通のトンネルだったようです。
トンネルを通りぬけて、逆側から、ピヨ太君、ピヨ子さん、ピヨ太ママの順番で出てきました。
入った順番は
ピヨ太君 → ピヨ子さん → ピヨ太ママ
です。
出てきた順番も
ピヨ太君 → ピヨ子さん → ピヨ太ママ
です。
これは
先に入った人(?)が先に出てきた
と言えるでしょう。
このような
「先」に「入」ったものが「先」に「出」てくる
のを「先入先出」や「FIFO」と言います。
ちなみに「FIFO」と表現された場合は「First In First Out(ファースト・イン・ファースト・アウト)」の略です。
※「First In First Out」を何となく日本語にすると「最初に入ったのが最初に出る」となります。[詳細]
さて、ドライブは続きます。
再び、ピヨ太君、ピヨ子さん、ピヨ太ママの順番でトンネルに入りました。
おっと、今度は偽物トンネルだったようです。
トンネルを通り抜けできません。
入ったところから戻る必要があります。
……が、道が狭くて、Uターンできませんでした。
仕方がないので、バックで戻ります。
入ったところから、ピヨ太ママ、ピヨ子さん、ピヨ太君の順番で出てきました。
入った順番は
ピヨ太君 → ピヨ子さん → ピヨ太ママ
です。
出てきた順番は
ピヨ太ママ → ピヨ子さん → ピヨ太君
です。
これは
後に入った人(?)が先に出てきた
と言えるでしょう。
このような
「後」に「入」ったものが「先」に「出」てくる
のを「後入先出」や「LIFO」と言います。
ちなみに「LIFO」と表現された場合は「Last In First Out(ラスト・イン・ファースト・アウト)」の略です。
※「Last In First Out」を何となく日本語にすると「最後に入ったのが最初に出る」となります。[詳細]
以上を踏まえて
後入先出な構造になっている何か
が「スタック(stack)」です。
偽物のトンネルみたいに行き止まりになっている構造のものを指します。
「スタック」と呼ばれているものが実際に何を指すかはケース・バイ・ケースです。
文脈から判断してください。
具体的に「これ!」を指す用語では ありません。
後入先出な構造になっている「何か」を指す用語です。
あと、ついでなので書いておくと、先入先出な構造になっている何かは「キュー(queue)」と言います。
普通のトンネルみたいに通り抜けできる構造のものです。
気が向いたら、セットで覚えてあげてください。
スタック:後入先出な何か
キュー:先入先出な何か
です。
「キューっと押し出せるのがキュー」で「キューじゃない方がスタック」と覚えると覚えやすいと思います。
一言でまとめるよ
まぁ「スタック(stack)」って単語が出てきたら「後入先出
(後に入れたもの(新しいもの)を先に出すやり方)な構造になっている何かなんだな~」と お考えください。
おまけ
■訳してみるよ
「stack(スタック)」の意味は
・(物を積み重ねた)山
・干し草の山
・積み重ね
とかです。






