题目

代码
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
const int N = 100010;
int queue[N];
int hh = 0, tt = -1;
//[hh, tt] 之间为队列(左闭右闭)
//hh,tt无关联,将其分开看,两个参数各自有各自的意义。(tt相当于有了几个数)
void push_queue(int x)
{
queue[++tt] = x;
}
void pop_queue()
{
hh++;
}
int empty_queue()
{ // 1表示为空,0表示非空。
if (tt >= hh)
return 0;
else
return 1;
}
void query_queue()
{
printf("%d\n", queue[hh]);
}
int main()
{
int m, x;
string str;
cin >> m;
while (m--)
{
cin >> str;
if (str == "push")
{
cin >> x;
push_queue(x);
}
else if (str == "pop")
{
pop_queue();
}
else if (str == "empty")
{
if (empty_queue() == 1)
{
cout << "YES" << endl;
}
else
{
cout << "NO" << endl;
}
}
else if (str == "query")
{
query_queue();
}
}
return 0;
}