キューはFIFO(First-In, First-Out)コレクションです:要素は背面に追加され、前面から削除されます。人の列のようなものです。
操作
text
enqueue(1) enqueue(2) enqueue(3) dequeue()->1
front ->[1][2][3]<- back front ->[2][3]<- back
例
python
from collections import deque
queue = deque()
queue.append('a') # enqueue (back)
queue.append('b')
first = queue.popleft() # dequeue (front) -> 'a'
プレーンな Python の list では pop(0) が**O(n)操作になるため、両端でO(1)**にするために deque を使用してください。
| 操作 | 時間(deque) |
|---|---|
| enqueue | O(1) |
| dequeue | O(1) |
| peek front | O(1) |
一般的な用途
- タスク / ジョブスケジューリング — 到着順に処理を実行します。
- 幅優先探索(BFS) — ノードをレベルごとに訪問します。
- バッファリング — プロデューサ/コンシューマパイプライン、プリントスプーラ、リクエストキュー。
なぜ重要なのか
キューは公平性と順序付けを強制します。これはスケジューラー、メッセージシステム、および BFS にとって重要です。
作業を「到着した順序で」処理する必要がある場合、キューが自然な選択肢です。
