
キューを知ろう!
キューとは?
キューはデータを一時的に保存するための「列」のようなデータ構造です。特に重要な特徴は以下の2点です:
先入れ先出し(FIFO: First In, First Out)
最初に入れたデータが最初に取り出されます。これは実際の列(行列)に似た動作です。操作が限られている
キューでは以下の操作しかできません:データを追加する(エンキュー: enqueue)
データを取り出す(デキュー: dequeue)
一番前のデータを見る(フロント: front または peek)
キューのイメージ
以下の操作例を見て、キューの動きを理解しましょう
操作例:
1. 空のキューにデータを追加
2. データを取り出す
状態の変化:
キュー: [ ] (空の状態)
enqueue(1) => [1]
enqueue(2) => [1, 2]
enqueue(3) => [1, 2, 3]
dequeue() => [2, 3] (1を取り出す)
front() => [2, 3] (2を見るだけ、キューは変化しない)
世の中にあるキュー
日常生活の中にも、キュー(先入れ先出し、FIFO)の概念が自然と溶け込んでいる場面がたくさんあります。以下にその例をいくつか挙げてみます。
列(行列)
レストランや銀行などで並ぶとき、最初に列に並んだ人が最初に案内されるのが一般的です。これがキューの典型的な使い方です。
プリンタのジョブ
複数の文書をプリンタに送信した場合、最初に送られたジョブ(文書)が最初に印刷されます。プリンタはキューの仕組みを利用してジョブを管理しています。
メッセージキュー
プログラム間でデータやリクエストをやり取りする際に使われるメッセージキューでは、先に送信されたメッセージが最初に処理されます。
まとめ
キューは、「先入れ先出し(FIFO)」という特徴を持つシンプルなデータ構造です。この特性は、データを順序通りに処理する必要がある場合に非常に役立ちます。まずは、基本的な操作を試して慣れるところから始めましょう。