不知道问题在哪儿,t[i]存储(i+96)字符的信息。
#include<bits/stdc++.h>
using namespace std;
int n,root;
struct node{
int l,r;
}t[30];
int fa[30];
void print(int x){
if(!x) return ;
cout<<char(x+96);
print(t[x].l);
print(t[x].r);
}
int main(){
cin>>n;
char c,l,r;
for(int i=1;i<=n;i++){
cin>>c>>l>>r;
if(l=='*') t[c-96].l=0;
else t[c-96].l=l-96;
if(r=='*') t[c-96].r=0;
else t[c-96].r=r-96;
fa[l-96]=c-96;
fa[r-96]=c-96;
}
for(int i=1;i<=n;i++){
if(!fa[i]){
root=i;
break;
}
}
print(root);
return 0;
}
/*
10
ag*
geh
efc
h*d
c**
dij
f**
j*b
i**
b**
agefchdijb
*/