队列及其常用操作实现
`1. 普通队列:
// hh 表示队头,tt表示队尾
int q[N], hh = 0, tt = -1;
// 向队尾插入一个数
q[ ++ tt] = x;
// 从队头弹出一个数
hh ++ ;
// 队头的值
q[hh];
// 判断队列是否为空
if (hh <= tt)
{
}
2. 循环队列
// hh 表示队头,tt表示队尾的后一个位置
int q[N], hh = 0, tt = 0;
// 向队尾插入一个数
q[tt ++ ] = x;
if (tt == N) tt = 0;
// 从队头弹出一个数
hh ++ ;
if (hh == N) hh = 0;
// 队头的值
q[hh];
// 判断队列是否为空
if (hh != tt)
{
}
。`
C++ 代码
#include<iostream>
using namespace std;
const int N=1e5+10;
int q[N];
int main(){
int n;
cin>>n;
int hh=0, tt=-1;
while(n--){
string op;
int x;
cin>>op;
if(op=="push"){
cin>>x;
q[++tt]=x;
}else if(op=="pop"){
hh++;
}else if(op=="empty"){
if(hh<=tt) puts("NO");
else puts("YES");
}else{
cout<<q[hh]<<endl;
}
}
}