用数组来模拟队列
#include<iostream>
using namespace std;
const int N = 1e5 + 10;
int a[N],tt = -1,hh = 0;//hh指向队头,tt指向队尾,看成数组,插入元素的时候,尾指针向右移动,弹出元素的时候,头指针向右移动
//hh在tt的左边,即队头指针在队尾指针的右侧
void push(int x){
a[ ++tt] = x;
}
void pop(){
hh ++;
}
void query(){
cout << a[hh] << endl;
}
bool isempty(){
if (tt >= hh)
return false;
else
return true;
}
int main(){
int m;
cin >> m;
while (m --){
string str;
int x;
cin >> str;
if (str == "push"){
cin >> x;
push(x);
}
else if (str == "pop"){
pop();
}
else if (str == "query"){
query();
}
else if (str =="empty"){
if (isempty())
cout <<"YES"<<endl;
else
cout << "NO" << endl;
}
}
return 0;
}