キュー (コンピュータ)

キュー（）あるいは待ち行列は、コンピュータにおける基本的なデータ構造の一つ。データを先入れ先出しのリスト構造で保持するものである。キューからデータを取り出すときには、先に入れられたデータから順に取り出される。キューにデータを入れることをエンキュー、取り出すことをデキューという。
プリンターへの出力処理や、ウィンドウシステムにおけるイベントあるいはメッセージのハンドリング、プロセスの管理など、データを入力された順番通りに処理する必要があるケースに用いられる。また、個々のタスクの実行時間が予測できない、あるいは実行に時間がかかってしまい、即座に（同期的に）実行することができない場合、キューを使っていったんタスクを溜め込んでおき、後からタスクを取り出して非同期で実行する、というような目的で使用できる。
キューの変形として、先頭と末尾の両端から入出力を行えるものを両端キューという。
キューとは逆に後入れ先出しのリスト構造を持つデータバッファをスタックと呼ぶ。
プログラミング言語によっては、キューを標準ライブラリとして実装していて、プログラマがキューそのもののプログラムを書かなくても利用できるようになっている。標準ライブラリとして用意されていない場合であっても、他のデータ構造、例えばリンクリストをキューと見立てて利用することも多い。
優先度付きキュー.
キューに追加する要素に優先度をつけ、優先度に基づいて、キュー内でソートするものを優先度付きキューという。高速化のための各種アルゴリズムが研究されており、また様々な他のアルゴリズムで間接的に使われている。
キューマシン.
キューマシンは、中間結果格納用にキューを用いる計算モデルである。
演算はエンキューされたデータを用いて行い、その結果をデキューする。そのため、スタックマシンと同じように0オペランドの命令で表現することができる。
また、キューマシンはデータフローに沿って命令を実行することになる。これはキューマシンの特徴の一つといえる。