描述
输入一串二叉树,输出其前序遍历。
输入描述
第一行为二叉树的节点数 n。(1≤n≤26)
后面 n 行,每一个字母为节点,后两个字母分别为其左右儿子。特别地,数据保证第一行读入的节点必为根节点。
空节点用
*
表示
输出描述
二叉树的前序遍历。
#include <bits/stdc++.h>
using namespace std;
int n;
char s1,s2,s3;
struct node{
char value;
int left=-1,right=-1;
}t[30];
void pre_order(int x){
printf("%c",t[x].value);
if(t[x].left!=-1) pre_order(t[x].left);
if(t[x].right!=-1) pre_order(t[x].right);
}
int main(){
cin>>n;
int index=-1;
while(n--){
cin>>s1>>s2>>s3;
if(index==-1){index=(int)(s1-'a');}
t[s1-'a'].value=s1;
if(s2!='*') t[s1-'a'].left = (int)(s2-'a');
if(s3!='*') t[s1-'a'].right = (int)(s3-'a');
}
pre_order(index);
return 0;
}