数据结构:队列 (Queue)
7/14/24About 1 min
什么是队列?
队列是一种遵循 先进先出 (FIFO, First-In, First-Out) 原则的线性数据结构。就像在现实生活中排队一样,第一个来的人第一个接受服务。
基本操作
- Enqueue (或 Push): 在队列的末尾(队尾)添加一个元素。
- Dequeue (或 Pop): 移除并返回队列的开头(队头)的元素。
- Front: 查看队头元素,但不移除它。
- Back: 查看队尾元素,但不移除它。
- IsEmpty: 检查队列是否为空。
C++ STL 中的 std::queue
C++ 标准模板库 (STL) 提供了 std::queue 容器适配器。
#include <iostream>
#include <queue>
int main() {
std::queue<int> q;
q.push(10);
q.push(20);
q.push(30);
std::cout << "Front element is: " << q.front() << std::endl; // 10
std::cout << "Back element is: " << q.back() << std::endl; // 30
q.pop();
std::cout << "Front element is: " << q.front() << std::endl; // 20
std::cout << "Queue size is: " << q.size() << std::endl;
while (!q.empty()) {
std::cout << q.front() << " ";
q.pop();
}
std::cout << std::endl;
return 0;
}应用场景
- 广度优先搜索 (BFS): BFS 算法的核心就是使用队列。
- 任务调度: 操作系统中的任务队列,按到达顺序处理进程。
- 打印机队列: 管理待打印的文档。
- 网络数据包: 路由器和交换机使用队列来处理网络数据包。