#P3516. 数组模拟双端队列

数组模拟双端队列

Description

虽然 STL 提供了 deque 这个双向队列,数组在 OI 中有天然的优势,我们还是需要学会使用数组模拟双向队列。
使用数组来实现一个双向队列,队列初始为空,支持四种操作:
  1. push_front x – 向队首插入一个数 x;
  2. push_back x – 向队尾插入一个数 x;
  3. pop_front – 从队头弹出一个数;
  4. pop_back – 从队尾弹出一个数;
  5. size – 获得队列内数据个数;
  6. front – 查询队头元素;
  7. back – 查询队尾元素;
现在要对队列进行 M 个操作,其中的每个操作 5,操作6 和操作 7 都要输出相应的结果。

Input Format

第一行包含整数 M,表示操作次数。
接下来 M 行,每行包含一个操作命令,操作命令为题目描述中的一种。

Output Format

输出每个操作 5,操作6 和操作 7 相应的结果。
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
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

Hint

1≤M≤100000,
1≤x≤10^9,
所有操作保证合法。

Source

数据结构 队列