何谓二叉树的遍历?

举个例子... 举个例子 展开
 我来答
long1988725
2010-12-02 · TA获得超过311个赞
知道答主
回答量:73
采纳率:0%
帮助的人:86万
展开全部
就是按照一定的顺序访问二叉树中的每一个节点。顺序一般有先序遍历,中序遍历和后序遍历
1.中序遍历的递归算法定义:
若二叉树非空,则依次执行如下操作:
(1)遍历左子树;
(2)访问根结点;
(3)遍历右子树。

2.先序遍历的递归算法定义:
若二叉树非空,则依次执行如下操作:
(1) 访问根结点;
(2) 遍历左子树;
(3) 遍历右子树。

3.后序遍历得递归算法定义:
若二叉树非空,则依次执行如下操作:
(1)遍历左子树;
(2)遍历右子树;
(3)访问根结点。

当你拿到一棵二叉树,无论它的形状如何的千奇百怪
我们都可以将它按照如下的方式划分

/ \
左子树 右子树
一棵有很多个节点的二叉树可以划分为以上的形式
也可以这么理解,只要是按以上形式组合的都可以称为是二叉树
一个仅仅只有根节点的二叉树也可以划分成以上的形式,只不过他的左右子树都为空罢了
所以,我们发现,二叉树的定义其实是一个递归定义的过程
大的二叉树是由小的二叉树构建而成的
所以,当我们考虑要遍历一棵二叉树时
也是首选递归的遍历
遍历二叉树
它的基本思想是先按照上面的形式把整棵二叉树划分为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
谁_人_知
2010-12-02 · TA获得超过220个赞
知道小有建树答主
回答量:171
采纳率:0%
帮助的人:155万
展开全部
遍历很容易理解嘛,就是全部节点都走一遍
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lxlewis
2010-12-02
知道答主
回答量:2
采纳率:0%
帮助的人:0
展开全部
按照一定的顺序输出二叉树中所有结点的值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式