題目描述
輸入一串完全二叉樹,用遍歷前序打出。
輸入輸出格式
輸入格式:第一行為二叉樹的節點數n。
後面n行,每一個字母為節點,後兩個字母分別為其左右兒子。
空節點用*表示
輸出格式:前序排列的完全二叉樹
輸入輸出樣例
輸入樣例#1:
6 abc bdi cj* d** i** j**
輸出樣例#1:
abdicj
桶。。。
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 using namespace std; 6 struct node 7 { 8 char pa; 9 char data; 10 char lc,rc; 11 }a[10001]; 12 int vis[201]; 13 int root=-1; 14 int xianxu(int i) 15 { 16 printf("%c",i); 17 if(a[i].lc!='*') 18 xianxu(a[i].lc); 19 if(a[i].rc!='*') 20 xianxu(a[i].rc); 21 } 22 int main() 23 { 24 int n; 25 scanf("%d",&n); 26 for(int i=1;i<=n;i++) 27 { 28 char data; 29 cin>>data; 30 cin>>a[data].lc>>a[data].rc; 31 a[a[data].lc].pa=data; 32 a[a[data].rc].pa=data; 33 vis[data]=1; 34 } 35 for(int i=1;i<=122;i++) 36 { 37 if(a[i].lc!=0&&a[i].pa==0) 38 { 39 root=i; 40 } 41 } 42 xianxu(root); 43 return 0; 44 }