题目描述
输入一串完全二叉树,用遍历前序打出。
输入输出格式
输入格式:
第一行为二叉树的节点数n。
后面n行,每一个字母为节点,后两个字母分别为其左右儿子。
空节点用*表示
输出格式:
前序排列的完全二叉树
输入输出样例
输入样例#1:
6
abc
bdi
cj*
d**
i**
j**
输出样例#1:
abdicj
代码
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
using namespace std;
struct cc{int l,r;}node[];
int root,N;
int fa,l,r;
char str[]; void print(int x){
printf("%c",char(x+'a'));
if(node[x].l!=-) print(node[x].l);
if(node[x].r!=-) print(node[x].r);
} int main(){
// freopen("01.in","r",stdin);
scanf("%d",&N); for(int i=;i<=;i++) node[i].l=node[i].r=-;
for(int i=;i<=N;i++){
scanf("%s",str+);
fa=int(str[]-'a');
if(str[]!='*') node[fa].l=int(str[]-'a');
if(str[]!='*') node[fa].r=int(str[]-'a'); if(i==)root=fa;
}
print(root);
return ;
}er......