编辑代码

#include<iostream>
using namespace std;
int e[1000000],ne[1000000],idx,h=-1;
void pushback(int x){
	idx++;
	e[idx]=x;
	ne[idx]=h;
	h=idx;
}
void pushk(int k,int x){
	idx++;
	e[idx]=x;
	ne[idx]=ne[k];
	ne[k]=idx;
}
void pop(int k){
	if(k==0){
		h=ne[h];
	}
	else
	{
		ne[k]=ne[ne[k]];
	}
}
int main(){
	int n;
	cin>>n;
	for(int i=1;i<=n;i++){
		char op;
		cin>>op;
		if(op=='H'){
			int x;
			cin>>x;
			pushback(x);
		}
		if(op=='D'){
			int k;
			cin>>k;
			pop(k);
		}
		if(op=='I'){
			int k,x;
			cin>>k>>x;
			pushk(k,x);
		}
	}
	for(int i=h;i!=-1;i=ne[i]){
		cout<<e[i]<<' ';
	}
	return 0;
}