前序中序后序遍历_构造二叉树和二叉树遍历

一、构造二叉树

①:在数据结构中,我们一般都会有这样的题目:由(前序和中序)或者(后序跟中序),画出该二叉树,我先说前序和中序的:我们只需要记住前序的作用就是可以由前序知道下一个根节点是谁,由中序知道该根节点的左右孩子结点是谁?下面直接用例子讲最通俗易懂的了:

例:

c31b5d14e0d96e4ebee1d220acdb82e5.png
前序和中序,构造二叉树

下面还有两个例子,你们可以尝试做一下:

1、已知一棵二叉树的前序序列为:A,B,D,G,J,E,H,C,F,I,K,L中序序列:D,J,G,B,E,H, A,C,K,I,L,F。
(1)写出该二叉树的后序序列
(2)画出该二叉树
2、已知二叉树的前序遍历序列是AEFBGCDHIKJ,中序遍历序列是EFAGBCHKIJD,画出此二叉树。

②:接着我们来讲讲有中序和后序构造二叉树的案例,其实大致跟前面的前序和中序构造二叉树差不多的,从中序判断出左右结点,后序判断下一个根节点(唯一区别就是后序判定下一个个根节点有点麻烦,我们可以认为从后序判定下一个根节点是从右往左的)。

例:已知某二叉树的中序遍历为F-D-H-G-I-B-E-A-C,后序遍历为F-H-I-G-D-E-B-C-A,请还原这颗二叉树?

c9b8804b282102edcd68fb2beff9d3f4.png

总之,做这种画二叉树的题目,要明确我们可以由前序或者后序判断下一个根结点,由中序判断出左右结点就可以了。

二、二叉树遍历

例一、

0e15818c946c660a61d6f905ab4e395a.png

前序我们都知道“根左右”嘛,先遍历到A,然后左结点B,按道理应该写C,但不能,因为这里的左结点B还有左结点D,F(我们记住一句话,如果遍历左结点的时候,左结点还有左结点,则需要把全部左结点遍历完,再去看右节点),以此类推。

67355f56ccdd4b2252c6e4e4809ad5bb.png
前序遍历

fd5a4ed9b7de46349a578e369d1507b9.png
中序遍历

后序我就不画了,你们从尝试着遍历,画一下,后序遍历序列是:FHIGDEBCA

62824c90f31068c6fd8dac0bc1e5a704.png
二叉树遍历2

1dd763b9fbfa2955303de125d2eed644.png
二叉树遍历3

前序遍历:ABDEHCFI

中序遍历:DBHEACIF

后序遍历:DHEBIFCA

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值