3020: 【普及-】【P1305】新二叉树

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:2 解决:2

题目描述

输入一串二叉树,输出其前序遍历。

输入

第一行为二叉树的节点数 lns="http://www.w3.org/1998/Math/MathML">。(lns="http://www.w3.org/1998/Math/MathML">126)

后面 lns="http://www.w3.org/1998/Math/MathML"> 行,每一个字母为节点,后两个字母分别为其左右儿子。特别地,数据保证第一行读入的节点必为根节点。

空节点用 * 表示

输出

二叉树的前序遍历。

样例输入 复制

6
abc
bdi
cj*
d**
i**
j**

样例输出 复制

abdicj

提示

#include<bits/stdc++.h>
using namespace std;
struct node {
	char l,r;
}tree[150];
void dfs(char pos) {
	cout << pos;
	if (tree[pos].l != '*') dfs(tree[pos].l);
	if (tree[pos].r != '*') dfs(tree[pos].r);
}
int main(){
	int n;
    char a,l,r,bg;
    cin >> n;
    cin >> bg >> l >> r;
    tree[bg].l = l;
    tree[bg].r = r;
    for (int i=1 ;i < n;i++) {
    	cin >> a >> l >> r;
		tree[a].l = l;
		tree[a].r = r; 
	}
	dfs(bg);
	return 0;
}