キュー(queue)とは、コンピュータサイエンスや情報科学において、データを特定の方法で保存・整理するために用いられるデータ構造です。キューは、FIFO(First-In, First-Out)の原則に従っており、キューに最初に追加されたアイテムは、最初に削除されるアイテムであることを意味する。キューには通常、2つの主要な操作があります: "enqueue"(アイテムをキューの最後に追加する)と "dequeue"(アイテムをキューの前から削除する)です。キューは、実行するタスクの順番を管理したり、Webサーバーでリクエストを処理したり、スーパーのレジ待ちのような現実世界のシナリオをシミュレートするなど、さまざまなアルゴリズムやプログラミングタスクで使用されています。
キューを理解するために、ある例えを使いましょう。食料品店のレジで並んでいるところを想像してください。最初に並んだ人が接客を受けて列を離れ、次の人が続き、新しいお客さんは最後に列に加わります。この動作は、FIFOの原理が働いている例であり、待ち行列の実例と考えることができます。
以下は、enqueueとdequeueの操作が連続する待ち行列の例です。
[]
[A]
[A, B]
[A, B, C]
[B, C]
[B, C, D]
[C, D]
この例では、空のキューから始めて、一連のenqueueとdequeueの操作を実行します。各操作の後、キューの最前列のアイテムは、削除されずに最も長くキューに残っているアイテムです。
プログラミング言語やライブラリの中には、キューのデータ構造に対するサポートを内蔵しているものがあります。また、配列やリストを使ってキューを実装することもできますが、その場合、一方の端(キューの「後方」)にアイテムを追加し、もう一方の端(キューの「前方」)からアイテムを削除するという制約があります。
要約すると、キューは、先入れ先出し(FIFO)の原則に従ってデータを保存し、整理するために使用されるデータ構造である。特定の順序で項目を追加したり(enqueue操作)、項目を削除したり(dequeue操作)できます。キューは、実行するタスクの順番を管理したり、Webサーバーでリクエストを処理したり、スーパーのレジ待ちのような現実世界のシナリオをシミュレートするなど、さまざまなアルゴリズムやプログラミングタスクで使用されています。