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

<span style="font-size:18px;">二<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">叉树的建立与遍历(binary-tree)                                                                                                                                                                                                                                                     </span></span>


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


输入
第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)打印根节点


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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值