キュー(queue)
キューとは、データ構造の一つ(データを格納する入れ物)で、入ってきたデータを順番に格納し、先に格納したデータから順に取り出す、 先入れ先出し(FIFO:First-In First-Out)方式のデータ構造です。
上記図は、キューのイメージです。お店などに並ぶ待ち行列と似ていることから「待ち行列」とも呼ばれています。
キューに追加する(enqueue)
キューに追加する操作ことを、エンキュー(enqueue)といいます。
以下は、エンキュー(enqueue)の動作イメージです。
「データ1」をキューに追加
まず「データ1」をキューに追加します。
キューに「データ1」が格納されました。
「データ2」をキューに追加
次に「データ2」をキューに追加します。
「データ2」は「データ1」の後に格納されます。後から追加したデータは、待ち行列と同じように先に追加したデータの後に格納されます。
キューから取り出す(dequeue)
キューから取り出すことを、デキュー (dequeue)といいます。
以下は、デキュー (dequeue)の動作イメージです。
キューからデータを取り出す
キューに「データ1」と「データ2」が格納されているとします。先に格納したのが「データ1」、後に格納したので「データ2」です。
このキューからデータを取り出すと、先に格納した「データ1」が取得できます。
再びキューからデータを取り出す
再びキューからデータを取り出すと、後に追加した「データ2」が取得できます。
このようにデキュー (dequeue)では、先に格納されたデータから順番に取り出されます。
キュー(queue)とスタック(stack)の違い
キューと似たようなデータ構造に スタック(stack)があります。
キューは、先に格納したデータから順に取り出す 先入れ先出し(FIFO:First-In First-Out)の方式のデータ構造です。
それに比べて、スタックは、後に格納したデータから取り出す 後入れ先出し(LIFO:Last-In First-Out)の方式のデータ構造です。
ポイント
キュー:先に格納したデータから取り出す(先入れ先出し)
スタック:後に格納したデータから取り出す(後入れ先出し)