经典应用

广度优先搜索(BFS)

图的广度优先搜索使用队列来保存待访问的顶点,保证按照距离起点的层次顺序依次访问。

void BFS(Graph G, int v) {
    InitQueue(Q);
    visited[v] = true;
    EnQueue(Q, v);
    while (!QueueEmpty(Q)) {
        DeQueue(Q, v);
        visit(v);  // 访问顶点v
        for (每个邻接点w of v) {
            if (!visited[w]) {
                visited[w] = true;
                EnQueue(Q, w);
            }
        }
    }
}

其他应用

  • 缓冲区管理:如键盘输入缓冲区、打印机任务队列
  • 操作系统任务调度:就绪队列、等待队列
  • 网络数据包传输:路由器的数据包排队
  • 层次遍历:二叉树的层序遍历
  • 滑动窗口:用双端队列实现滑动窗口最大值问题

趣味事实