数据结构-----二叉树的遍历

目录

一、二叉树的遍历有三种三种遍历方式:

二、给定二叉树的先序和中序,写出二叉树的后序

三、给定二叉树的中序遍历和后序遍历,写出先序遍历

一、二叉树的遍历有三种三种遍历方式:

1.前序遍历:根---->左---->右

2.中序遍历:左---->根---->右

3.后序遍历:左---->右---->根

例如:有一棵树如图所示:

 前序遍历:A--->B--->C--->D--->E--->F--->G--->H--->K;

中序遍历:B--->D--->C--->A--->E--->H--->G--->K--->F;

后序遍历:D--->C--->B--->H--->K--->G--->F--->E--->A。 

二、给定二叉树的先序和中序,写出二叉树的后序

思路:先还原出这棵二叉树。

假设,二叉树的先序遍历为:ABDFCEGH,中序遍历结构为:BFDAGEHC

第一步,看先序遍历,由遍历顺序得,A为这棵树的根节点;

第二步,然后,可以确定的是BFD为A的左子树,GEHC为A的右子树,接下来就看左子树和右子                  树长什么样就行。

第三步,先看左子树,由先序遍历知,B为左子树的根节点。

              再看中序遍历,B的左边没有字母而右边有,可以确定B只有右子树;

              然后再看先序遍历,得D为B的右子树;

              最后看中序遍历,D的右边是A而A已经被选择了,D的左边只有F,所以D只有左子                树,且左子树为F。

              那么左子树就为:

第四步 ,由先序遍历知,C为A的右子树;

第五步, 先看中序遍历,C的右边没有字母,左边有,说明C只有左子树;

第六步,再看先序遍历,可知E为C的左子树;

第七步,最后看中序遍历,E的左边为G,右边为H,说明G为E的左子树,H为E的右子树。

那么最后整个树还原后应该是这样的:

后序遍历为:F--->D--->B--->G--->H--->E--->C--->A

三、给定二叉树的中序遍历和后序遍历,写出先序遍历

假设,二叉树的中序遍历为:DEBAC,后序遍历为:DABEC

第一步,先看后序遍历,可知C为这棵树的根节点;

第二步,再看中序遍历,可知这棵树只有左子树;

第三步,再看后序遍历,E在最后,则E为C的左子树;

第四步,然后看中序遍历,E的左边为D,E的右边为B,可以确定E的左子树为D,右子树为B;

第五步,最后看中序遍历,B的右边为A,则B的右子树为A。

最后这棵树还原后为:

先序遍历为:C--->E--->D--->B--->A 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值