记录详情
万紫千红
#include<iostream>
using namespace std;
struct node{
int id;
int l,r;
char name;
}a[100005];
int w[100005];
int n;
void dfs(char id){
cout<<a[id].name;
if(a[id].l!=0)dfs(a[id].l);
if(a[id].r!=0)dfs(a[id].r);
}
char x,y,z,s;
int main(){
cin>>n;
a[1].id=1;
cin>>a[1].name;
w[a[1].name-'a']=a[1].id;
cin>>y>>z;
a[w[a[1].name-'a']].l=w[a[1].name-'a']*2;
a[w[a[1].name-'a']*2].name=y;
a[w[a[1].name-'a']*2].id=w[a[1].name-'a']*2;
w[a[w[a[1].name-'a']*2].name-'a']=w[a[1].name-'a']*2;
a[w[a[1].name-'a']].r=w[a[1].name-'a']*2+1;
a[w[a[1].name-'a']*2+1].name=z;
a[w[a[1].name-'a']*2+1].id=w[a[1].name-'a']*2+1;
w[a[w[a[1].name-'a']*2+1].name-'a']=w[a[1].name-'a']*2+1;
for(int i=2;i<=n;i++){
cin>>x>>y>>z;
if(y!='*'){
a[w[x-'a']].l=w[x-'a']*2;
a[w[x-'a']*2].name=y;
a[w[x-'a']*2].id=w[x-'a']*2;
w[a[w[x-'a']*2].name-'a']=w[x-'a']*2;
}
if(z!='*'){
a[w[x-'a']].r=w[x-'a']*2+1;
a[w[x-'a']*2+1].name=z;
a[w[x-'a']*2+1].id=w[x-'a']*2+1;
w[a[w[x-'a']*2+1].name-'a']=w[x-'a']*2+1;
}
}
dfs(1);
return 0;
}
大佬们,我知道这代码很丑,所以大佬们凑合着看吧。