AcWing 826. 单链表
原题链接
简单
作者:
腾杨天下
,
2021-04-05 04:46:24
,
所有人可见
,
阅读 275
#include<bits/stdc++.h>
using namespace std;
const int N=100010;
int e[N],ne[N],head=-1,idx=0;
void add(int x)
{
ne[idx]=head;
e[idx]=x;
head=idx;
idx++;
}
void add_to_k(int k,int x)
{
ne[idx]=ne[k];
e[idx]=x;
ne[k]=idx;
idx++;
}
void del(int k)
{
ne[k]=ne[ne[k]];
}
int main()
{
int m;
cin>>m;
memset(ne,-1,sizeof(ne));
while(m--)
{
char c;
cin>>c;
if(c=='H')
{
int x;
cin>>x;
add(x);
}
else if(c=='D')
{
int k;
cin>>k;
if(!k)head=ne[head];
else del(k-1);
}
else
{
int k,x;
cin>>k>>x;
add_to_k(k-1,x);
}
}
for(int i=head;i!=-1;i=ne[i])
{
cout<<e[i]<<' ';
}
return 0;
}