1. 简介
队列是一种先进先出的数据结构。
//头文件
#include<queue>
//定义初始化
queue<int>q;
queue<string>q;
queue<node>q;//node是结构体类型
2.接口函数
代码 | 含义 | 时间复杂度 |
---|---|---|
front() | 返回队首元素 | O(1) |
back() | 返回队尾元素 | O(1) |
push() | 尾部添加一个元素副本 进队 | O(1) |
pop() | 删除第一个元素 出队 | O(1) |
size() | 返回队列中元素个数,返回值类型unsigned int | O(1) |
empty() | 判断是否为空,队列为空,返回true | O(1) |
3.其他
a.队列遍历
队列只能对队首队尾元素进行操作,如果想要进行遍历,只能将队列中元素一个个取出来存在数组中
b.模拟队列
使用q[]
数组模拟队列,hh
表示队首元素的下标,初始值为0,
tt
表示队尾元素的下标,初始值为-1
,表示刚开始队列为空。
#include<bits/stdc++.h>
using namespace std;
const int N = 1e5+5;
int q[N];
int main()
{
int hh = 0,tt = -1;
// 入队
q[++tt] = 1;
q[++tt] = 2;
// 出队
while(hh<=tt)
{
int t = q[hh++];
printf("%d ",t);
}
return 0;
}