#5225. 循环队列下标模拟
循环队列下标模拟
题目描述
用长度为 N 的数组模拟循环队列,并采用“留一个空位置区分队满和队空”的方式。
规定:
front指向当前队首元素的位置;rear指向下一次入队时要写入的位置;- 初始
front = rear = 0; - 入队后执行
rear = (rear + 1) % N; - 出队后执行
front = (front + 1) % N; - 队列最多保存
N-1个元素。
有三种操作:
PUSH x:将x入队;POP:删除队首元素;QUERY:输出当前front、rear和队列中元素个数。
题目保证不会在队空时 POP,也不会在队满时 PUSH。
输入格式
第一行两个整数 N,Q。
接下来 Q 行,每行一个操作。
输出格式
每遇到一个 QUERY,输出三个整数:front rear size。
样例
5 8
PUSH 10
PUSH 20
PUSH 30
QUERY
POP
PUSH 40
PUSH 50
QUERY
0 3 3
1 0 4
数据范围
2 <= N <= 200000,1 <= Q <= 200000。
粤公网安备44195502000252号