AcWing 826. 单链表
原题链接
简单
作者:
云_580
,
2024-09-05 10:53:38
,
所有人可见
,
阅读 1
#include<bits/stdc++.h>
using namespace std;
const int N = 1e5+10;
int head,e[N],ne[N],idx;
//初始化
void init(){
head = -1;
idx = 1;
}
//插入到头节点
void insert_to_head(int x){
e[idx]=x;ne[idx]=head;head=idx;idx++;
}
//插入到第k个数的后面
void insert_to_k(int k,int x){
e[idx]=x;ne[idx]=ne[k];ne[k]=idx;idx++;
}
//删除第k个数后面的数
void remove(int k){
ne[k]=ne[ne[k]];
}
int main(){
int n;
cin>>n;
//记得初始化
init();
for(int i = 1;i<=n;i++){
char ch;
int a,b;
cin>>ch;
if(ch=='H'){
cin>>a;
insert_to_head(a);
}else if(ch=='D'){
cin>>a;
if(a==0)head=ne[head];
else remove(a);
}else{
cin>>a>>b;
insert_to_k(a,b);
}
}
for(int i = head;i!=-1;i=ne[i])cout<<e[i]<<" ";
return 0;
}