cpp
#include<bits/stdc++.h>
using namespace std;
struct node{
int data;
node *next;
};
long long f[100001];
long long a;
void insert1(node *p,node *head,int x,int y){
node *s,*k;s=new node;
k=new node;
s=head;
while(s->data!=x){
s=s->next;
}
k->data=y;
k->next=s->next;
s->next=k;
}
int main(){
long long n;cin>>n;long long z;
a=1;
memset(f,0,sizeof(f));
node *head,*r,*p;
head=new node;
head->data=1;
head->next=NULL;
r=head;long long x,y;
for(int i=1;i<=n;i++){
cin>>z;
switch (z) {
case 1:{
cin>>x>>y;
p=new node;
insert1(p,head,x,y);
// p->data=y;
// p->next=NULL;
// r->next=p;
// r=p;
}
break;
case 2:{
cin>>x;node *l=head;
while(l->data!=x){
l=l->next;
}
f[a++]=l->next->data;
// cout<<l->next->data<<endl;
}
break;
default:
cin>>x;node *q=head,*s;
while(q->data!=x){
q=q->next;
}
s=q->next;
q=q->next->next;
free(s);
break;
}
}
for(int i=1;i<a;i++){
cout<<f[i]<<endl;
}
return 0;
// vector容器
// 删除一定要free吗???
}
``` ```