AcWing 826. 单链表
原题链接
简单
作者:
wjie
,
2020-07-02 12:41:16
,
所有人可见
,
阅读 510
#include <iostream>
#include <cstdio>
using namespace std;
const int N = 1e5 + 5;
int cnt, head = -1;
struct Edge{
int data;
int next;
}edge[N];
int main()
{
int n;
scanf("%d", &n);
while (n--)
{
char op;
cin >> op;
int k, x;
if (op == 'H')
{
scanf("%d", &x);
edge[++cnt] = {x, head};
head = cnt;
}
else if (op == 'D')
{
scanf("%d", &k);
if (!k)
head = edge[head].next;
else
edge[k].next = edge[edge[k].next].next;
}
else
{
scanf("%d %d", &k, &x);
edge[++cnt] = {x, edge[k].next};
edge[k].next = cnt;
}
}
for (int i = head; i != -1; i = edge[i].next)
printf("%d ", edge[i].data);
return 0;
}