二叉树 遍历过程

二叉树的遍历过程:从“非线性结构”  =》  “线性结构” 的转变过程!!

一、二叉树的遍历
先序遍历 DLR (依次遍历:根结点,左子树,右子树)
中序遍历 LDR (依次遍历:左子树,根结点,右子树)
后序遍历 LRD (依次遍历:左子树,右子树,根结点)
看不懂?不急,直接上图。(二叉树就像递归一样,一层一层的。)

1. 先序遍历


从根结点开始围着跑,依次写出即可。(这是简单的方法,也是最快的,但还是要看一下下面的详细解释哦)

图中序列为:A B D H E C F I G

详细解释(我称它为"三分法"):先序遍历是先根,再左,后右,像递归一样一层一层拨开,(此处的根结点是每一个结点皆可是根,而不是最顶上的根结点),如下图;分好根左右后,按我们上面的定义(依次遍历:根结点,左子树,右子树)

根是A(写下来),再拨左子树,此时左子树可分成图二;根是B(写下来),再拨左子树,又拨成图三的样子;根是D(写下来),拨不下去了,回到根是D的情况,在图三中,H成为了左子树(写下来),发现没有右子树,那就不写了;回到根是B的情况,在图二中,根结点和左子树已经被我们写好了,到右子树了,右子树是E(写下来);如此如此,这般这般,再按此方法把图一中的右子树划分成图四,图五的样子,剩下的交给你了。写出来为:A B D H E C F I G

2. 中序遍历


 图中序列为:H D B E A I F C G

按我上图的"三分法"敲好用。(熟练后心中直接出图,不用像我一样框出来)

解释:不要忘了定义:中序遍历 LDR (依次遍历:左子树--->根结点--->右子树)

图一中根是A,但我们要先写左子树,开始拨图二,发现还有,继续拨它;图三中,左子树是H(写下来),根是D(写下来),右子树,没有就不写;回到图二,根是B(写下来)因为左子树已经被我们写好了,右子树是E(写下来);回到图一,根是A(写下来),开始写右子树,然后就是图四,图五了;交给你了,别忘了定义!定义!定义!写出来为:H D B E A I F C G

 3.后序遍历


 图中序列为:H D E B I F G C A

目前还是没有发现又快又保证能对的方法,但"三分法"依旧很强,熟练后就又快又准了。

解释:后序遍历 LRD (依次遍历:左子树,右子树,根结点)

先左子树,我们一眼拨到图三,左子树H(写下来),没有右子树,那就到根D(写下来)了;图二中,右子树是E(写下来),根是B(写下来);拨到图五,左子树是I(写下来),F(写下来)是根;图四,右子树是G(写下来),根是C(写下来),最后A是图一的根;写出来为:H D E B I F G C A

二、遍历的推导
如下面的题。PS:如果只给 前序遍历序列和后序遍历序列 是不能确定唯一二叉树的(判断题)。

 简单的方法:后序遍历最后一个序列结点一定是最顶上的根结点,先序遍历第一个序列结点一定是根结点。所以此题只能含泪选D再拿3分了。

开玩笑,要是换个干扰项怎么办呢?还是要有真功夫的!

解释:后序可判断C为根结点,这样从(1)可推出左子树,大家可还记得上面图四和图二的后序遍历吗?看看他们各自的根结点与总结点A有上面关系?你试着画一个没有右子树的,看看它的后序遍历是什么。这样由后序(2)可推E为根,由中序可推左右子树,(5)再推根,又可中序推出左右子树,这样图5.2就画出来了。中序判左右,后序判根结点。再看下一题巩固下。

别急着看结果,自己画一下

  

此题为:D 

详细解释:由先序遍历推出根结点为A,由(1)可推左子树为DGB,右子树为ECHF;由(2)可确定左子树的根为B;根为B,由(3)可推知DG为左子树,再由(4)知D为根,由(5)可推G为右子树;这样就可以画出左边的图了(例图三)。ECHF交给你们了,请用好我的“三分法”哦!结果为(例图四);由先序推根,中序推左右子树。

                                                                        自己画一下

三、重要的事情 
根左右,左根右,左右根 三者相互限制可判断出相应位置。
————————————————
                        
原文链接:
数据结构--二叉树遍历(详细过程)-CSDN博客

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值