题目描述
输入一串完全二叉树,用遍历前序打出。
输入输出格式
输入格式:
第一行为二叉树的节点数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 }
时间: 2024-10-26 16:39:54