队列

入门

队列强调"先到先服务",让处理顺序稳定可控。

队列

会展示入队、读取队首和出队,帮助理解先进先出。

AlgoAnim · 队列

待机

速度
待机
// 源代码
1queue<int> q;
2
3void enqueue(int x) {
4    q.push(x);
5}
6
7void dequeue() {
8    if (!q.empty()) q.pop();
9}
10
11int frontValue() {
12    return q.front();
13}

复杂度分析

时间 push/pop/front O(1)
空间 O(n)
最优 O(1)
最坏 O(1)

算法讲解

队列从尾部入队、从头部出队,因此最先进入的数据会最先被处理。

BFS 按层推进时,本质上就是把"下一批待访问节点"放进队列里排队。

理解队列时可以重点看 front 和 rear 两个边界,它们决定了当前有效区间。

当我们进一步允许头尾两端都操作时,就会自然过渡到双端队列。