【二叉树】二叉树的建立与遍历

叉树的建立与遍历(binary-tree)                                                                                                                                                                                                                                                     


题目描述
给出一棵二叉树,分别输出先序、中序、后序遍历结果。


输入
第1行:结点数n(1<=n<=100)


以下若干行,每行3个整数,分别表示父结点、左孩子、右孩子。若没有孩子,对应的整数为0.


输出
第1行:树根


第2行:先序遍历结果,数字间用1个空格分开。


第3行:中序遍历结果,数字间用1个空格分开。


第4行:后序遍历结果,数字间用1个空格分开。


样例输入
8
1 2 4
2 0 0
4 8 0
3 1 5
5 6 0
6 0 7
8 0 0
7 0 0
样例输出
3
3 1 2 4 8 5 6 7
2 1 8 4 3 6 7 5

2 8 4 1 7 6 5 3


--------------------------------------------------------------------------------------


这道题可以通过hash表找根,开始进行遍历

为了方便遍历,我们可以把它的所有信息存在tree[father]处。

然后便是各种遍历,输出节点了。


---------------------------------------------------------------------------


【附】树的三种遍历:

1、先序遍历

1)打印根节点

     2)先序遍历左子树

     3)先序遍历右子树


2、中序遍历

     1)中序遍历左子树

     2)打印根节点

     3)中序遍历右子树


3、后序遍历

     1)后序遍历左子树

     2)后序遍历右子树

     3)打印根节点


由于树的先序、中序、后序遍历的步骤是递归描述的,所以,遍历的程序普遍用递归来写。

你可能感兴趣的:(数据结构)