📙 キュー.

📌キューの特徴.

  • 「待ち行列」とも呼ばれ、データの到着順に処理したい時に使用するデータ構造.
  • データの中で最初に入ったものが最初に取り出されるFIFOの原則に従ったデータ構造.

📌キューの手順.

1️⃣enqueue(x):キューの末尾に要素xを追加.
2️⃣dequeue():キューの先頭から要素を取り出す.
3️⃣isEmpty():キューが空かどうかを調べる.
4️⃣isFull():キュー満杯かどうかを調べる.

追加と取り出しが繰り返されることで、headとtailに挟まれたデータ本体が末尾に向かって移動.

この操作を繰り返していると、tailとheadが配列の容量を超えてしまう.

  • tailが配列の領域を超えた時点でオーバーフローで追加を諦めると容量が勿体無い.
  • dequeue()実行の都度、headを常に0に保つよう配列を先頭に移動すると毎度計算量O(n)が必要.

これを解決する方法が配列をリングバッファとみなしてデータを管理する方法.

🔎対象ソースは以下に格納.

// なし