链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
题目描述
栗酱有一天在网上冲浪的时候发现了一道很有意思的数据结构题。
该数据结构形如长条形。
一开始该容器为空,有以下七种操作。
1 a从前面插入元素a
2 从前面删除一个元素
3 a从后面插入一个元素
4 从后面删除一个元素
5 将整个容器头尾翻转
6 输出个数和所有元素
7 对所有元素进行从小到大排序
这道题主要是deque,之前见到过又忘了,这个是双端队列,记录一下加深记忆
#include <iostream>
#include <algorithm>
#include <deque>
using namespace std;
const int N = 10010, mod = 1000000007;
deque <int> q;
int main() {
int n, m, a, x;
cin >> n >> m;
while (m--) {
cin >> x;
if (x == 1)
cin >> a, q.push_front(a);
if (x == 2)
q.pop_front();
if (x == 3)
cin >> a, q.push_back(a);
if (x == 4)
q.pop_back();
if (x == 5)
reverse(q.begin(), q.end());
if (x == 6) {
cout << q.size() << endl;
for (int i : q)
cout << i << " ";
cout << endl;
}
if (x == 7)
sort(q.begin(), q.end());
}
}