描写风景的诗句 小学:二叉树的遍历问题,高手请进

来源:百度文库 编辑:中科新闻网 时间:2024/04/28 21:39:21
二叉树的遍历问题,高手请进
悬赏分:0 - 离问题结束还有 14 天 23 小时
请看这图:

-----------------------A----------------
-------------------/----- \ ------------
------------------B--------C------------
----------------/--\----- /-------------
---------------D--- E--- F--------------
------------------------/---------------
-----------------------G----------------
-----------------------\----------------
------------------------H---------------

这题教材上说它的中序遍历序列是: DBEAGHFC
后序遍历序列是: DEBHGFCA
依照中序遍历的法则 :(1)中序遍历左子树(2)访问根结点(3)中序遍历右子树。这里我自己是这样理解的:先中序遍历左子树 D ,访问根结点 B ,接着中序遍历右子树 E, 可接下来我就不知第四步为什么是 A 了?接下来都不理解了?

依照后序遍历的法则: (1)后序遍历左子树(2)后序遍历右子树(3)访问根结点。这里我自己是这样理解的:后序遍历左子树D ,后序遍历右子树E ,接着访问根结点B ,可接下来我就不知第四步为什么是H ,接下来也都不理解了?

还有这里我不明中序遍历 和后序遍历到底是什么意思?请高手详细指点。感激不尽!

先解释中序遍历和后序遍历的意思.”中序”和”后序”中的”中”和”后”都是指访问根结点的先后次序,顾名思义,中序遍历就是中间遍历的是根结点,后序遍历就是最后遍历根结点.但左子树总是默认在右子树之前遍历.

再来解释你的问题:
依照中序遍历的法则,先中序遍历左子树 D ,访问根结点 B ,接着中序遍历右子树 E,然后回到上一次,左子树已遍历完,访问根结点A,然后访问右子树”CFGH”,在右子树中又应该先访问左分支,因为最低一层左分支没有,就先访问最低一层根结点G,接着访问最低一层的右分支H,然后依次上溯到上层次的根结点F,再上溯到C

依照后序遍历的法则,后序遍历左子树D ,后序遍历右子树E ,接着访问根结点B ,然后对于整个树来说先遍历右子树”CFGH”,对右子树来说又应该先从最低层遍历起,最低层无左分支,遍历右分支H,然后上溯到G,又无右分支,再上溯到F,然后是C,最后才遍历总的根结点A

总之要始终把握各遍历原则,希望我的回答让你满意~^-^!

先看中序遍历,根节点是A,它的左子树的根节点是B,左子树的左子树是D,右子树是E。根据中序遍历的算法,先“左”后“中”最后“右”,所以A的左子树中序遍历的结果是DBE,既然整个树的左子树访问完了,当然就要访问整个树的根节点了,就是A;现在已经是DBEA了。现在开始看右子树,右子树C的左子树是F,C的右子树为空;再接着往左下找,F的左子树是G,F没有右子树;在往左下找,G没有左子树,那么G的左子树就不用访问了,直接写根节点G就可以了,再写G的右子树H,再逆着找回去,到F了,F的左子树已经访问完,所以接着写访问根节点F,没有右子树,再往上,就是C了。即:DBEAGHFC
这是中序遍历
后序遍历类似,原则是先“左”后“右”最后“中”。在遍历的时候一定要明确每棵子树和每棵子树的子树。严格遵从比那里算法的要求,一个节点一个节点的判断,可以用笔标示出每棵子树来,或者将计算完的子树遮盖住,不要影响下一步的判断。经过几次的练习,相信你就能熟练的进行各种次序的遍历了。

树,是一种数据结构,遍历,就是遵从某种次序,遍访树的所有节点,使每个节点都被访问一次,而且只访问一次。只有访问到了每个节点,才能对相应的数据进行操作。
希望我的回答对你有所帮助