queue 是一种 FIFO (First-In, First-Out) 集合:元素从 后面 添加,从 前面 移除,就像排队的人一样。
Operations
text
enqueue(1) enqueue(2) enqueue(3) dequeue()->1
front ->[1][2][3]<- back front ->[2][3]<- back
Example
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。
| Operation | Time (deque) |
|---|---|
| enqueue | O(1) |
| dequeue | O(1) |
| peek front | O(1) |
常见用途
- Task / job scheduling — 按到达顺序处理工作。
- Breadth-first search (BFS) — 逐级访问节点。
- Buffering — 生产者/消费者管道、打印队列、请求队列。
为什么这很重要
队列强制实现公平性和顺序,这对调度器、消息系统和 BFS 至关重要。
每当需要按照 "到达的顺序" 处理工作时,队列就是最自然的选择。
