データ構造 (スタック・キュー)

LIFOのスタックとFIFOのキュー、それぞれの操作と用途を解説します。

スタックは LIFO、キューは FIFO のデータ構造。OSのプロセス管理から関数呼び出しまで幅広く使われます。

日野 こむぎ(普段) 日野 こむぎ

スタックとキューって、お皿を積むイメージで合ってる?

藤森 さやか 先生(笑顔) 藤森 さやか 先生

そうそう。
スタックは「後入れ先出し」(LIFO) のデータ構造。
お皿を積み上げて、上から順に取っていくイメージね。

青木 澪(普段) 青木 澪

操作はpush(積む) と pop(取り出す) の2つですね。
つまり、最後に積んだものが最初に出てくるという理解で合っていますか?

桃井 すみれ(普段) 桃井 すみれ

じゃあキューはどうなのぉ?

藤森 さやか 先生(笑顔) 藤森 さやか 先生

キューは「先入れ先出し」(FIFO) ね。
お店の行列を思い浮かべて。
先に並んだ人から順番に買えるでしょ?

青木 澪(普段) 青木 澪

補足すると、キューの操作はenqueue(末尾に追加) と dequeue(先頭から取り出す) の2つです。

日野 こむぎ(普段) 日野 こむぎ

要は、どんなところで使われてるの?

藤森 さやか 先生(普段) 藤森 さやか 先生

スタックは関数呼び出しの管理 (コールスタック)、Undo/Redo、深さ優先探索など。
キューはOSのプロセス待ち行列、印刷ジョブ、幅優先探索などね。

青木 澪(普段) 青木 澪

ブラウザの「戻る」「進む」もスタックの応用。
一方、待ち時間の公平な処理にはキューが最適よ。

桃井 すみれ(笑顔) 桃井 すみれ

わぁ、身近な例がいっぱいあるんだねぇ!

確認クイズ

スタックの動作を表す英語の頭字語はどれか。

  1. FIFO
  2. LIFO
  3. FILO
  4. LILO
こたえを見る

正解: 2. LIFO

スタックは LIFO (Last In First Out) = 後入れ先出し です。FIFOはキューの動作です。

藤森さやか先生、青木澪、桃井すみれ、日野こむぎが海辺でビーチボールを楽しむ様子

🔖 この記事の関連書籍

Amazonアソシエイトリンクを含みます。他分野は おすすめ書籍ページ へ。