【ライフォ】
LIFO(後入先出) とは?
💡 最後に積んだお皿から取る、スタックの鉄則
📌 このページのポイント
LIFOってどういう意味なの?
「Last In, First Out」の略で、最後に入れたものを最初に取り出すルールのことだよ。カフェテリアでお皿が積み重なっているのを想像してみて。一番上のお皿から取るよね。最後に置かれたお皿が最初に使われる、それがLIFOだよ。
コンピュータのどこで使われているの?
一番重要なのは「コールスタック」だね。プログラムで関数Aが関数Bを呼び、関数Bが関数Cを呼ぶと、C→B→Aの順で戻っていくんだ。最後に呼んだ関数から順番に終了するのがまさにLIFOだよ。
身近な例だとどんなものがあるの?
ブラウザの「戻る」ボタンがわかりやすいよ。ページA→B→Cと見たら、戻るボタンでC→B→Aの順に戻るよね。あとはテキストエディタの「元に戻す(Undo)」も、最後の操作から順番に取り消していくLIFOの仕組みだよ。
FIFOとはどう使い分けるの?
スタックオーバーフローっていう言葉も聞いたことがあるんだけど、関係あるの?
大いに関係あるよ!LIFOで動くスタックには容量の上限があるんだ。再帰処理で関数を呼びすぎると、スタックに積み上げたデータが容量を超えてしまう。これがスタックオーバーフローだよ。有名なQ&サイトの名前の由来にもなっているね。
まとめ:ざっくりこれだけ覚えればOK!
「LIFO」って出てきたら「最後に入れたものを最初に出す、積み重ねルール」と思えればだいたいOK!
📖 おまけ:英語の意味
「Last In, First Out」 = 後入先出(最後に入ったものが先に出る)
💬 「最後に入ったものが最初に出る」をそのまま略した言葉だよ。FIFOの対義語として覚えるとわかりやすいよ