0
点赞
收藏
分享

微信扫一扫

洛谷 P1305 新二叉树 C++

蛇发女妖 2022-03-15 阅读 50

题目描述

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

输入格式

第一行为二叉树的节点数 n。(1≤n≤26)

后面 n行,每一个字母为节点,后两个字母分别为其左右儿子。

空节点用 * 表示

输出格式

二叉树的前序遍历。

输入输出样例

输入 #1复制

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

输出 #1复制

abdicj

水题

#include<bits/stdc++.h>
using namespace std;
struct tree {
	char L,R,fa;//存储每个结点的左右结点和父结点 
}a[1100];
int n;
char b,c,d;
int t1, t2, t3,flag=0;
void dfs(char x) {
	printf("%c", x);
	if (a[x].L!='*')dfs(a[x].L);
	if (a[x].R!='*')dfs(a[x].R);
}
int main(){
	scanf("%d", &n);
	for (int i = 1; i <= n; i++) {
		scanf(" %c",&b);//每次的父结点 
		if(i==1)flag=b;//记录根结点 
		scanf("%c%c",&a[b].L,&a[b].R);//录入相应头节点的左右结点 
		a[a[c].L].fa=a[a[c].R].fa=b;//记录左右结点的父节点 
	}
	dfs(flag);//从根结点开始递归 
	return 0;
}

举报

相关推荐

0 条评论