开始使用双链表,超时了所以失败,后来发现向量也可以头插,尾插。逆置和排序与链表有所不同。
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main(){
int n,m;
cin>>n>>m;
vector<int>L;
vector<int>::iterator it;
int a;
while(m--){
int t;
cin>>t;
if(t==1){
cin>>a;
L.insert(L.begin(),a);
}else if(t==2){
L.erase(L.begin());
}else if(t==3){
cin>>a;
L.push_back(a);
}else if(t==4){
if(!L.empty())
L.pop_back();
}else if(t==5){
reverse(L.begin(),L.end());
}else if(t==6){
cout<<L.size()<<endl;
for(it=L.begin();it!=L.end();it++){
if(it!=L.begin())
cout<<" "<<it;
else
cout<<
it;
}
cout<<endl;
}else if(t==7){
sort(L.begin(),L.end());
}
}
return 0;
}</int></int></vector></algorithm></iostream>