$$\color{red}{算法}\color{blue}{基础课}\color{purple}{笔记and题解}\color{green}{汇总}$$
笔记:
队列是一个“吃了拉”的系统,元素从左边(队头)进入,从右边(队尾)弹出。
我们仍然可以用数组&双指针进行模拟。
$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;
}