B3631 单项链表
#include <iostream>
using namespace std;
int n,op,x,y,p=1;
struct node{int val,nxt=0;}a[10000005];
void insertnode(int f,int g){for(int i=1;i<=p;i++)if(a[i].val==f)a[++p].val=g,a[i].nxt=p;}
void deletenode(int f){for(int i=1;i<=p;i++)if(a[i].val==f)a[i].nxt=a[a[i].nxt].nxt;}
int main(){
a[1].val=1;
cin>>n;
for(int i=1;i<=n;i++){
cin>>op>>x;
switch(op){
case 1:cin>>y;insertnode(x,y);break;
case 2:a[x].nxt?cout<<a[a[x].nxt].val<<endl:cout<<0<<endl;break;
case 3:deletenode(x);break;
}
}
return 0;
}