#include <iostream>
using namespace std;
const int N = 1e5 + 10;
int l[N], r[N], e[N];
int m, k, x, idx;
char ch;
void Init()
{
r[0] = 1;
l[1] = 0;
idx = 2;
}
void add(int k, int x)
{
e[idx] = x;
r[idx] = r[k];
l[idx] = k;
l[r[k]] = idx;
r[k] = idx;
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
Init();
cin >> m;
while (m--)
{
cin >> ch;
if (ch == 'L')
{
cin >> x;
add(0, x);
}
else if (ch == 'R')
{
cin >> x;
add(l[1], x);
}
else if (ch == 'D')
{
cin >> k;
del(k - 1);
)
else if (ch == 'IL')
{
cin >> k >> x;
add(l[k - 1], x);
}
else if (ch == 'IR')
{
cin >> k >> x;
add(k - 1, x);
}
}
for (int i = r[0]; i != m - 1; i = r[i]) cout << e[i] << " ";
// 非传统的i++,通过r数组存储的索引来遍历
return 0;
}
11111
最新推荐文章于 2025-06-12 23:09:27 发布