#P0163. deque & 双端队列

deque & 双端队列

题目描述

deque<int>qdeque <int> q

常用函数

q.push_back(value)value 添加到队列的末尾。

q.push_front(value)value 添加到队列的首部。

q.pop_back() 弹出队列最后一个元素。

q.pop_front() 弹出队列第一个元素。

q.size() 返回队列中元素的数量。

注意: 包含 #include <queue>

#include <iostream>
#include <queue>
using namespace std;
deque<int> q;
int main()
{
    int n;
    cin >> n;
     
    for(int i = 0; i < n; ++ i)
    {
        int op, t;
        cin >> op;
        if(op == 1)
        {
            cin >> t;
            q.push_back(t);
        }
        else if(op == 2)
        {
            cin >> t;
            q.push_front(t);
        }
        else if(op == 3)
        {
            q.pop_back();
        }
        else
        {
            q.pop_front();
        }
    }
    for(int i = 0; i < q.size(); ++ i) cout << q[i] << ' ';
    return 0;
}

输入格式

11 行,为一个正整数 nn

接下来 nn 行,每行一个正整数 opop

opop11 则接着输入一个整数 tt, 并将其 q.push_back(t)q.push\_back(t) 入队。

opop22, 则接着输入一个整数 tt, 并将其 q.push_front(t)q.push\_front(t) 入队。

opop33,则弹出队列最后一个元素。

opop44,则弹出队列第一个元素。

数据保证 opop3344 时队列不为空。

输出格式

共一行,输出操作后的 dequedeque

数据范围

1n105.1 ≤ n ≤ 10^5.

1t105.1 ≤ t ≤ 10^5.

输入样例:

3
1 2
2 1
4

输出样例:

2