二叉树遍历

1/\23/\/\4567中序:4251637为什么是从4开始,不是从2开始,1遍历后,为什么又不是从3开始呢,3也是左子树啊... 1
/ \
2 3
/ \ / \
4 5 6 7
中序:4251637 为什么是从4开始,不是从2开始 ,1遍历后,为什么又不是从3开始呢,3也是左子树啊
展开
 我来答
雨晔bf
2009-03-14 · TA获得超过3444个赞
知道小有建树答主
回答量:576
采纳率:100%
帮助的人:455万
展开全部
很显然你还不懂的遍历一棵二叉树的原理
当你拿到一棵二叉树,无论它的形状如何的千奇百怪
我们都可以将它按照如下的方式划分

/ \
左子树 右子树
一棵有很多个节点的二叉树可以划分为以上的形式
也可以这么理解,只要是按以上形式组合的都可以称为是二叉树
一个仅仅只有根节点的二叉树也可以划分成以上的形式,只不过他的左右子树都为空罢了
所以,我们发现,二叉树的定义其实是一个递归定义的过程
大的二叉树是由小的二叉树构建而成的
所以,当我们考虑要遍历一棵二叉树时
也是首选递归的遍历
遍历二叉树
它的基本思想是先按照上面的形式把整棵二叉树划分为3部分
哪么接下来的工作就很简单了
我们只需要将这3部分都遍历一遍就可以了(这里用到了分而治之的思想)
而对于这3部分来说
根节点的遍历无疑是最方便的,直接访问就ok了
而对于左右子树呢?
我们不难发现,左右子树其实分别成为了两棵完整的树
他们拥有各自独立的根节点,左子树和右子树
对他们的遍历,很显然应该与刚才的遍历方法一致便可
(如果上面的都理解了,那么这个题就是小菜一碟了,如果觉得无法理解,可以按照下面的方法自己多分解几棵树)
对于这个题目,中序遍历这可二叉树
先看根节点
1
/ \
左子树 右子树
我们应该先遍历左子树
也就是下面这棵树
2
/ \
4 5
对于这棵树在进行中序遍历
我们应先遍历她的左子树
他只有一个根节点4,左右子树都为空
哪么遍历这个只有一个根节点的二叉树
先访问她的左子树,为空
返回
访问该树的根节点4
在访问右子树也为空
此时,这棵树已经被完全的遍历了
我们需要返回上一层也就是
2
/ \
4 5
这棵树
此时,她的左子树已经被访问完毕
根据中序遍历的规则
需要访问此树的根节点2
此时的访问顺序是4-2
访问了根节点
在访问右子树只有一个根节点的5(具体过程看4的访问)
5访问完毕
也就意味着
2
/ \
4 5
这棵树已经访问完了
需要返回上一层
也就是1为根的树
此时这棵树的左子树已经访问完毕
此时访问的顺序是4-2-5应该没有问题
接下来访问根节点1
在访问右子树
3
/ \
4 7
是不是觉得似曾相识???
她的访问应该跟
2
/ \
4 5
一致
哪么最终遍历的顺序也出来了
4-2-5-1-6-3-7

-----------------------------
花了10多分钟
希望对你有所帮助
顺便自己也复习下
呵呵
百度网友54045b0
2009-03-14
知道答主
回答量:11
采纳率:0%
帮助的人:9.6万
展开全部
中序:先遍历左子树 就是245组成的那棵树 遍历245时也是中序 就是“425”
然后走根节点“1” 然后遍历右子树“637”
连起来就是4251637

~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
秒懂百科
2020-12-10 · TA获得超过5.9万个赞
知道大有可为答主
回答量:25.3万
采纳率:88%
帮助的人:1.3亿
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xumaxige
2009-03-14 · TA获得超过384个赞
知道答主
回答量:272
采纳率:0%
帮助的人:251万
展开全部
- -!这种问题。。多看几遍书就好了吧
中序是左中右顺序遍历。把每个点都看成头结点然后左走,遇节点就遍历左子树,等左边空了,就访问当前节点的父节点,也就是中,写下,再右,以对右节点左中右。。
整个过程就是把左中右做从大到小的分离。自己多数数就清楚了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式