题目描述
输入一串二叉树,用遍历前序打出。
输入格式
第一行为二叉树的节点数n。(n \leq 26n≤26)
后面n行,每一个字母为节点,后两个字母分别为其左右儿子。
空节点用*表示
输出格式
前序排列的二叉树
输入输出样例
输入 #1复制
6 abc bdi cj* d** i** j**
输出 #1复制
abdicj
#include <bits/stdc++.h>
using namespace std;
struct node
{
char l, r;
}tree[1000];
char root = ' ';
void pre_view(char i) {
printf("%c", i);
if (tree[i].l != '*')pre_view(tree[i].l);
if (tree[i].r != '*')pre_view(tree[i].r);
}
int main() {
ios::sync_with_stdio(0);
int n;
cin >> n;
for (int i = 0; i<n; i++) {
char a,b,c;
cin >> a>>b>>c;
if (root == ' ')root = a;
tree[a].l = b;
tree[a].r = c;
}
pre_view(root);
return 0;
}