#P3501. 队列的基本操作
队列的基本操作
题目描述
队列是一种基本的数据结构。队列具有两种基本操作方式:push 和 pop。push 会将一个值压入队列队尾,而 pop 将会从队列队头弹出。现在我们就来验证一下队列的使用。
输入格式
首先输入整数 ,代表测试的组数,之后是 组输入。
对于每组测试数据,第一行输入两个正整数 、,其中 代表当前队列的最大长度, 代表本组测试下面要输入的操作数。
而后的 行,每行的第一个字符可能是 P 或 O 或 A:
- 如果是
P,后面还会跟着一个整数,表示把这个数据写入队尾; - 如果是
O,表示队头元素出队,但是出队之前要先输出一下队头元素; - 如果是
A,表示询问当前队列头部的值。
我们保证所有队列中的数据绝对值不会超过 。
输出格式
对于每组测试数据,根据其中的命令字符来处理队列:
- 对所有的
P操作,如果队列满输出 F,否则完成入队操作; - 对所有的
A操作,如果队列空,则输出 E,否则输出当时队头的值; - 对所有的
O操作,如果队列空,则输出 E,否则输出队列头部元素的值,并让其出队。
每个输出占据一行。每组测试数据(最后一组除外)完成后,输出一个空行。
样例
2
5 12
A
P 9
A
P 6
P 3
P 10
P 8
A
P 2
O
O
O
2 5
P 1
P 3
O
P 5
A
E
9
9
F
9
6
3
1
3
样例解释
第一组测试数据中,初始队列为空,执行 A 输出 E。然后执行 P 9 入队,再执行 A 输出队头 9。依此类推。
数据范围
- 队列中数据的绝对值不超过