26 - 队列的基本操作

现在给你一个队列,它一开始是空的,你需要模拟队列的操作。队列的操作包括如下:

1. “push x”:将元素 x 放入队列中,其中x是一个int范围内的整数;

2. “pop”,将队列的队首元素取出来,如果此时队列是空的,那么我们不进行任何操作;

3. “front”,输出队首元素对应的值,如果此时队列是空的,那么我们需要输出一个字符串“empty”;

4. “back”,输出队尾元素对应的值,如果此时队列是空的,那么我们需要输出一个字符串“empty”;

5. “size”,输出当前队列中元素的个数。

输入

第一行一个正整数 n (1≤n≤100000),用于表示操作的数量。

接下来 n 行,每行可能是如下结构:

1. “push x”:将元素 x 放入队列中,其中x是一个int范围内的整数;

2. “pop”,将队列的队首元素取出来,如果此时队列是空的,那么我们不进行任何操作;

3. “front”,输出队首元素对应的值,如果此时队列是空的,那么我们需要输出一个字符串“empty”;

4. “back”,输出队尾元素对应的值,如果此时队列是空的,那么我们需要输出一个字符串“empty”;

5. “size”,输出当前队列中元素的个数。

输出

你需要判断每一行输入,并执行对应的操作。

样例

输入

10
push 3
push 5
front
back
size
pop
pop
pop
front
size

输出

3
5
2
empty
0

提示

【样例解释】

step.1: 将3 push 入队尾,此时队列中元素为:[ 3 ]

step.2: 将5 push 入队尾,此时队列中元素为:[ 3, 5 ]

step.3: 输出队首元素,此时队首元素为3,所以输出“3”

step.4: 输出队尾元素,此时队尾元素为5,所以输出“5”

step.5: 输出队列中元素个数,此时队列中元素个数为2,所以输出“2”

step.6: 将队首元素出队列,队首元素3出队列后,队列中元素为:[ 5 ]

step.7: 将队首元素出队列,队首元素5出队列后,队列中元素为:[ ] , 是一个空队列了

step.8: 将队首元素出队列,但是因为这个时候队列已经空了,所以我们什么操作都不做

step.9: 输出队首元素,此时队列为空,所以输出“empty”

step.10: 输出队列中元素个数,此时队列中元素个数为0,所以输出“0”

【数据规模】

50% 的数据,满足 1≤n≤1000;

100%的数据,满足 1≤n≤100000。

时间限制 1 秒
内存限制 128 MB
讨论 统计
上一题 下一题