题目描述
输入一串完全二叉树,用遍历前序打出。
输入输出格式
输入格式:第一行为二叉树的节点数n。
后面n行,每一个字母为节点,后两个字母分别为其左右儿子。
空节点用*表示
输出格式:前序排列的完全二叉树
输入输出样例
输入样例#1:
6abcbdicj*d**i**j**
输出样例#1:
abdicj 桶。。。
1 #include2 #include 3 #include 4 #include 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 }