AB7 【模板】队列
hh : 队头(初始化0),tt : 队尾(初始化 -1);
一旦hh > tt 即代表队列为空
#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 10;
int que[N];
int hh; //队头0
int tt = -1; //队尾-1
// 当 hh > tt时,即队列为空
string op; //操作的名称
// 队列是先进先出的,从队尾进入,从队头出去
void pushOP(int x) {
que[++tt] = x;
}
// 因为会在操作的时候判断是否为空,所以函数这里就减少操作
void popOP() {
hh++;
}
// 队列是从队头出来的
int getFront() {
return que[hh];
}
bool isEmpty() {
// true 空
if (hh > tt) return true;
else return false;
}
int m; //操作的次数
int main () {
cin >> m;
int x;// 要插入队尾的数
while (m--) {
cin >> op;
if (op == "push") {
cin >> x;
pushOP(x);
}else if (op == "pop") {
if (isEmpty()) cout << "error" << endl;
else {
int k = getFront();
popOP();
cout << k << endl;
}
}else {
if (isEmpty()) cout << "error" << endl;
else {
cout << getFront() << endl;
}
}
}
return 0;
}