6024: 学习系列——队列 II—— 模拟双向队列
[Creator : ]
Description
虽然 STL 提供了 deque 这个双向队列,数组在 OI 中有天然的优势,我们还是需要学会使用数组模拟双向队列。
使用数组来实现一个双向队列,队列初始为空,支持四种操作:
使用数组来实现一个双向队列,队列初始为空,支持四种操作:
- push_front x – 向队首插入一个数 $x$;
- push_back x – 向队尾插入一个数 $x$;
- pop_front – 从队头弹出一个数;
- pop_back – 从队尾弹出一个数;
- size – 获得队列内数据个数;
- front – 查询队头元素;
- back – 查询队尾元素;
Input
第一行包含整数 $M$,表示操作次数。
接下来 $M$ 行,每行包含一个操作命令,操作命令为题目描述中的一种。
接下来 $M$ 行,每行包含一个操作命令,操作命令为题目描述中的一种。
Output
输出每个操作 $5$,操作$6$ 和操作 $7$ 相应的结果。
Constraints
$1≤M≤100000$,
$1≤x≤10^9$,
所有操作保证合法。
$1≤x≤10^9$,
所有操作保证合法。
Sample 1 Input
34
push_front 6
size
front
back
push_back 12
size
front
back
pop_front
size
front
back
pop_front
size
push_back 3
size
front
back
push_back 4
size
front
back
push_front 6
size
front
back
push_front 35
size
front
back
pop_back
size
front
back
Sample 1 Output
1
6
6
2
6
12
1
12
12
0
1
3
3
2
3
4
3
6
4
4
35
4
3
35
3