洛谷-P1305 新二叉树
题目描述
输入一串二叉树,输出其前序遍历。
输入格式
第一行为二叉树的节点数 n。((1 leq n leq 26))
后面 n 行,每一个字母为节点,后两个字母分别为其左右儿子。
空节点用 *
表示
输出格式
二叉树的前序遍历。
输入输出样例
输入 #1
6
abc
bdi
cj*
d**
i**
j**
输出 #1
abdicj
C++代码
#include <iostream>
using namespace std;
int n;
char tree[30][3];
void dfs(int k) {
cout<<tree[k][0];
int i;
if(tree[k][1]!='*') {
for(i=0;tree[k][1]!=tree[i][0]&&i<n;++i);
dfs(i);
}
if(tree[k][2]!='*') {
for(i=0;tree[k][2]!=tree[i][0]&&i<n;++i);
dfs(i);
}
}
int main() {
cin>>n;
for(int i=0;i<n;++i)
cin>>tree[i][0]>>tree[i][1]>>tree[i][2];
dfs(0);
cout<<endl;
return 0;
}