笔记:
队列是一个“吃了拉”的系统,元素从左边(队头)进入,从右边(队尾)弹出。
我们仍然可以用数组&双指针进行模拟。
push操作:队尾指针加1,且在队尾的位置放置push的元素x。
pop操作:队头指针加1。
empty操作:如果队头指针与队尾指针重合,那么就代表队列为空,否则不为空。
query操作(查询队头元素):返回队头指针上的元素。
代码:
#include <bits/stdc++.h>
using namespace std;
int t, q[100010], f, r;
int main() {
cin >> t;
while (t--) {
string opt; int x; cin >> opt;
if (opt == "push") cin >> x, q[r++] = x;
else if (opt == "pop") f++;
else if (opt == "query") cout << q[f] << endl;
else {
if (f == r) puts("YES");
else puts("NO");
}
}
return 0;
}