#include<iostream>
using namespace std;
const int N=100010;
int q[N],hh=0,tt=-1;//初始化队头为0,队尾为-1
int main()
{
int n;
cin>>n;
while(n--)
{
string str;
cin>>str;
if(str=="push")
{
int x;
cin>>x;
q[++tt]=x;//x入栈,tt后移一位
}
else if(str=="pop")
{
hh++;//对头出栈直接让hh++即可
}
else if(str=="empty")
{
if(hh<=tt) cout<<"NO"<<endl;//因为开始的时候tt=-1,hh=0,入队tt++,出队hh++,所以只要队里还有元素,tt就>=hh,否则就说明空
else cout<<"YES"<<endl;
}
else if(str=="query")
{
cout<<q[hh]<<endl;//单纯读取对头不需要hh++
}
}
return 0;
}
数据结构之队列(模拟数组)基本操作
最新推荐文章于 2021-05-21 10:17:25 发布