题目描述
输入一串完全二叉树,用遍历前序打出。
输入输出格式
输入格式:
第一行为二叉树的节点数n。
后面n行,每一个字母为节点,后两个字母分别为其左右儿子。
空节点用*表示
输出格式:
前序排列的完全二叉树
输入输出样例
输入样例#1:
6 abc bdi cj* d** i** j**
输出样例#1:
abdicj
代码
1 #include<iostream> 2 #include<cstring> 3 #include<algorithm> 4 #include<cstdio> 5 using namespace std; 6 struct cc{int l,r;}node[999]; 7 int root,N; 8 int fa,l,r; 9 char str[30]; 10 11 void print(int x){ 12 printf("%c",char(x+'a')); 13 if(node[x].l!=-1) print(node[x].l); 14 if(node[x].r!=-1) print(node[x].r); 15 } 16 17 int main(){ 18 // freopen("01.in","r",stdin); 19 scanf("%d",&N); 20 21 for(int i=0;i<=800;i++) node[i].l=node[i].r=-1; 22 for(int i=1;i<=N;i++){ 23 scanf("%s",str+1); 24 fa=int(str[1]-'a'); 25 if(str[2]!='*') node[fa].l=int(str[2]-'a'); 26 if(str[3]!='*') node[fa].r=int(str[3]-'a'); 27 28 if(i==1)root=fa; 29 } 30 print(root); 31 return 0; 32 }er......