一、模拟
const int N = 1e5 + 10;
int hh = 1, tt = 0;
int que[N];
//队尾插入x
que[++tt] = x;
//返回队尾元素
que[tt];
//返回队头元素
que[hh];
//弹出对头
hh++;
//检查是否非空
hh > tt ? YES : NO;
//队列长度
tt - hh;
二、STL
#include<bits/stdc++.h>
using namespace std;
queue<int> que;
//队尾插入x
que.push(x);
//返回队尾
que.back();
//返回队头
que.front();
//弹出队头
que.pop();
//检查是否为空
que.empty();
//长度
que.size();
Code:
#include<bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
int hh = 1, tt = 0;
int que[N];
int main(){
ios::sync_with_stdio(false);
int m;
cin >> m;
while(m--){
string op;
int x;
cin >> op;
if(op == "push"){
cin >> x;
que[++tt] = x;
}
else if(op == "pop")
hh++;
else if(op == "empty")
cout << (hh > tt ? "YES" : "NO") << endl;
else
cout << que[hh] << endl;
}
}