题目描述
勿忘初始化
C++ 代码
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int N = 100010;
int m;
int head, idx;
int e[N], ne[N];
void init(){
head = -1;
idx = 0;
}
void add_to_head(int x){
e[idx] = x;
ne[idx] = head;
head = idx++;
}
void remove(int x){
ne[x] = ne[ne[x]];
}
void add(int k, int x){
e[idx] = x;
ne[idx] = ne[k];
ne[k] = idx++;
}
int main()
{
cin>>m;
init();
while(m--){
char op;
int k, x;
cin>>op;
if(op == 'H'){
cin>>x;
add_to_head(x);
}
else if(op == 'D'){
cin>>x;
if(!x) head = ne[head];
else remove(x - 1);
}
else if(op == 'I'){
cin>>k>>x;
add(k - 1, x);
}
}
for(int i = head; i != -1; i = ne[i])
{
cout<<e[i]<<" ";
}
cout<<endl;
return 0;
}