#include<iostream> using namespace std; const int N = 100010; int ne[N], e[N];// ne[]存储的是指针, e[]存储的是节点的值 int head;//head表示的是头节点的下标 int idx;//表示当前是第几个节点 void init() { head = -1; idx = 0; } // 将x插到head后面 int add_to_head(int x) { ne[idx] = head, head = idx, e[idx] = x;//ne[idx]表示第idx个节点下一个节点是插入的第几个节点,e[idx]表示第idx个节点存储的是哪一个点 idx ++; } void add(int k, int x)//在k节点后面插入一个新节点 { ne[idx] = ne[k]; e[idx] = x; ne[k] = idx ++; } void Delete(int k)//删除k节点后面的那个节点 { ne[k] = ne[ne[k]]; } int main() { int t; cin >> t; init(); while(t --) { char s; cin >>s; int i, j; if(s=='H') { cin >>i; add_to_head(i); } if(s=='D') { cin >> i; if(i == 0)head = ne[head]; Delete(i); } if(s=='I') { cin >> i >> j; add(i, j); } } for(int i = head; i != -1; i = ne[i]) { cout <<e[i]<<" "; } }