エンキュー/デキュー【enqueue/dequeue】

概要

エンキュー/デキューとは、キュー(queue)と呼ばれるデータ構造に要素を出し入れする操作。エンキューはキューの末尾に要素を追加し、デキューはキューの先頭から要素を取り出して取り除く。
エンキュー/デキューのイメージ画像

キューは要素を一列に並べたデータ構造で、順番を待つ人の行列のように、最も古い要素を最も先に取り出すという「先入れ先出し」(FIFOFirst-In First-Out)ルールに基づいて要素の出し入れを行う。

「エンキュー」(enqueue)操作はキューの末尾に新しい要素を追加する。要素の数は1増加する。この要素が取り出されることになるのはその時点で存在する要素の中で最も後になる。「デキュー」(dequeue)操作はキューの先頭から要素を取り出し、先頭から2番目にあった要素が新たに先頭になる。要素の数は1減少する。

この「先頭」「末尾」はキューとしての論理的な位置関係を表し、実装上のデータの記憶領域において物理的に先頭や末尾に対応するとは限らない。例えば、配列を用いてキューを実装する場合には、デキューが行われたからといってすべての要素を一つ前の配列変数にコピーし直すのは非効率であるため、現在のキューの「先頭」「末尾」の位置を変数に格納して、配列上を「先頭」「末尾」の位置が後方に移動していくという実装とすることが多い。

(2021.12.17更新)

他の用語辞典による「エンキュー/デキュー」の解説 (外部サイト)

資格試験などの「エンキュー/デキュー」の出題履歴

▼ 基本情報技術者試験
令2修6 問8】 待ち行列に対する操作を,次のとおり定義する。 ENQ n:待ち行列にデータnを挿入する。 DEQ :待ち行列からデータを取り出す。
令2修6 問8】 待ち行列に対する操作を,次のとおり定義する。 ENQ n:待ち行列にデータnを挿入する。 DEQ :待ち行列からデータを取り出す。
平30秋 問5】 待ち行列に対する操作を,次のとおり定義する。 ENQ n:待ち行列にデータnを挿入する。 DEQ :待ち行列からデータを取り出す。
平30秋 問5】 待ち行列に対する操作を,次のとおり定義する。 ENQ n:待ち行列にデータnを挿入する。 DEQ :待ち行列からデータを取り出す。
平29修1 問5】 待ち行列に対する操作を,次のとおり定義する。 ENQ n:待ち行列にデータnを挿入する。 DEQ :待ち行列からデータを取り出す。
平29修1 問5】 待ち行列に対する操作を,次のとおり定義する。 ENQ n:待ち行列にデータnを挿入する。 DEQ :待ち行列からデータを取り出す。
平26修12 問5】 待ち行列に対する操作を,次のとおり定義する。 ENQ n:待ち行列にデータnを挿入する。 DEQ :待ち行列からデータを取り出す。
平26修12 問5】 待ち行列に対する操作を,次のとおり定義する。 ENQ n:待ち行列にデータnを挿入する。 DEQ :待ち行列からデータを取り出す。
平25秋 問5】 待ち行列に対する操作を,次のとおり定義する。 ENQ n:待ち行列にデータnを挿入する。 DEQ :待ち行列からデータを取り出す。
平25秋 問5】 待ち行列に対する操作を,次のとおり定義する。 ENQ n:待ち行列にデータnを挿入する。 DEQ :待ち行列からデータを取り出す。
平22修12 問5】 待ち行列に対する操作を,次のとおり定義する。 ENQ n:待ち行列にデータnを挿入する。 DEQ :待ち行列からデータを取り出す。
平22修12 問5】 待ち行列に対する操作を,次のとおり定義する。 ENQ n:待ち行列にデータnを挿入する。 DEQ :待ち行列からデータを取り出す。