题目描述
模拟队列
用数组模拟队列
队头进,队尾出
C++ 代码
#include<iostream>
#include<string>
using namespace std;
const int N=100010;
int stk[N];
int n;
int hh,tt=-1; //hh是队头,tt为队尾
int main()
{
cin>>n;
while(n--)
{
string op;
int x;
cin>>op;
if(op=="push")
{
cin>>x;
stk[++tt]=x; //tt从-1开始的,所以要先加1再赋值,在队尾加入新值
}
else if(op=="pop")
{
hh++; //队头向队尾靠近
}
else if(op=="empty")
{
if(hh<=tt)cout<<"NO"<<endl; //先判断简洁的条件
else cout<<"YES"<<endl;
}
else
{
cout<<stk[hh]<<endl; //队头的序号
}
}
return 0;
}