スタックは LIFO、キューは FIFO のデータ構造。OSのプロセス管理から関数呼び出しまで幅広く使われます。
スタックとキューって、お皿を積むイメージで合ってる?
そうそう。
スタックは「後入れ先出し」(LIFO) のデータ構造。
お皿を積み上げて、上から順に取っていくイメージね。
操作はpush(積む) と pop(取り出す) の2つですね。
つまり、最後に積んだものが最初に出てくるという理解で合っていますか?
じゃあキューはどうなのぉ?
キューは「先入れ先出し」(FIFO) ね。
お店の行列を思い浮かべて。
先に並んだ人から順番に買えるでしょ?
補足すると、キューの操作はenqueue(末尾に追加) と dequeue(先頭から取り出す) の2つです。
要は、どんなところで使われてるの?
スタックは関数呼び出しの管理 (コールスタック)、Undo/Redo、深さ優先探索など。
キューはOSのプロセス待ち行列、印刷ジョブ、幅優先探索などね。
ブラウザの「戻る」「進む」もスタックの応用。
一方、待ち時間の公平な処理にはキューが最適よ。
わぁ、身近な例がいっぱいあるんだねぇ!
確認クイズ
スタックの動作を表す英語の頭字語はどれか。
- FIFO
- LIFO
- FILO
- LILO
こたえを見る
正解: 2. LIFO
スタックは LIFO (Last In First Out) = 後入れ先出し です。FIFOはキューの動作です。