关于二叉树的递归遍历还是不理解 那位高手能不能详细讲一下!!! 10

 我来答
sddream123
2013-04-09
知道答主
回答量:12
采纳率:0%
帮助的人:11.5万
展开全部
主要有三种遍历方法,先序遍历,中序遍历,后序遍历。
先序遍历:就是先访问根节点,再访问其左子树。最后访问右子树。
A
/ \
B C
/ \ / \
D E F G
对于遍历来说无论是哪种遍历,采取的思路是遍历左子树和右子树的时候,把左子树和右子树当成一棵新的完整的二叉树来对待,按照指定的遍历方法进行遍历,就比较容易理解了。
例如:先序遍历
1、首先访问根节点A,然后接下来要去访问它的左子树
2、将它的左子树当成一棵完整的二叉树:
B
/ \

D E
这个你要采用先序来进行遍历的话,还是先遍历根节点,然后左子树,然后右子树。那么这个时候必定要先访问根节点B了。
3、再将B的左子树当成一棵新的二叉树:
D
由于其没有子树了,就只有一个根节点。所以这个时候就访问这个根节点D
4、同样的道理再去访问B的右子树E。
5、到这个地方,对于根节点A的左子树才完整遍历了。
6、同样的道理接着去访问A的右子树,还是将它的右子树当成一个新的二叉树,进行遍历。遍历结果是CFG。
7、最终的遍历结果就是ABDECFG。
/* 我的理解是递归A->B->D,然后就回到A了,怎么到了B就停了 去访问E,就是这点我不理解 ,请你帮我理一下思路,到底是怎么回事啊???*/
你的理解只是单纯的理解为访问左子树的时候,只是左边的是它的左子树,其实在访问的时候只要是处在A左边的全部都是它的左子树。。。
希望我的回答对你有所帮助。。。。。
free飘然羽化
2013-04-05 · 超过12用户采纳过TA的回答
知道答主
回答量:24
采纳率:0%
帮助的人:21.6万
展开全部
主要有三种遍历方法,先序遍历,中序遍历,后序遍历。
先序遍历:就是先访问根节点,再访问其左子树。最后访问右子树。
A
/ \
B C
/ \ / \ B
D E F G / \
例如:先访问A,再访问其左子树 D E ,那么,对于这个树,先访问其根节点B,再访问其左子树D。D没有左右子树。于是访问B的右子树E。E没有子树。返回A,访问A的右子树。即:C 与其左子树F和右子树G。最后得出遍历序列是:ABDECFG。
中序遍历:就是先访问左子树,再访问其根节点。最后访问右子树。
遍历方法如上:最后遍历序列:DBEAFCG
后序遍历:先访问左子树,再访问其右子树。最后访问根节点。
同样方法:遍历序列:DEBFGCA
追问
我的理解是递归A->B->D,然后就回到A了,怎么到了B就停了 去访问E,就是这点我不理解 ,请你帮我理一下思路,到底是怎么回事啊???
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式