二叉树根据图片怎么算遍历

论坛 期权论坛 期权     
Oo_莫小柚_   2018-4-26 13:57   3547   1

比如这个二叉树怎么算它的前序遍历、中序遍历和后序遍历,把方法给我说一下好吗?特别是中序遍历还有后序遍历根本就不知道该从哪里绕到哪里……我不要什么C++程序代码的算法,只需要根据图片进行推算~谢谢

分享到 :
0 人收藏

1 个回复

倒序浏览
2#
sakuya2002  2级吧友 | 2018-4-30 01:57:37 发帖IP地址来自
前序中序后序指的是节点的访问顺序, 前序就是先访问节点, 再用前序遍历访问节点的左子树, 最后用前序遍历访问节点的右子树.
中序遍历就是先用中序遍历访问节点的左子树, 再访问节点, 最后用中序遍历访问节点的右子树.
后序遍历是先用后序遍历访问节点的左子树, 再用后序遍历访问节点的右子树, 最后访问节点.
所以这个访问你也能看出, 相当于一个递归.
对于你的图, 可以这样拆解
前序遍历是  0节点 ( 0的左子树) ( 0的右子树)  = 0节点 ( 1节点 (1的左子树) (1的右子树)) ( 2节点 (2的左子树)(2的右子树)) 以此类推, 最后得出前序遍历 : 0   1   3   7   8   4   9   10   2   5   11  12   6   13  14.
中序遍历同样, 只是拆解的方式改成节点在中间  (0的左子树)  0节点 ( 0的右子树) = ( (1的左子树) 1节点 (1的右子树))  0节点 ( (2的左子树)  2节点 (2的右子树))
=  ( ((3的左子树) 3节点 (3的右子树)) 1节点 ((4的左子树) 4节点 (4的右子树)) )  0节点  (  ((5的左子树) 5节点 (5的右子树)) 2节点 ((6的左子树) 6节点 (6的右子树))  )
所以,  得出中序遍历  7  3  8  1  9  4  10   0   11  5  12  2  13  6  14
同样的, 后序遍历你就按照  ( 0的左子树) (0的右子树) 0节点  =  ( (1的左子树) (1的右子树) 1节点 )  ( (2的左子树)(2的右子树) 2节点)  0节点  这样去拆解就可以了.
最后可以得出后序遍历为  7   8   3   9   10  4   1  11   12  5  13  14  6  2  0
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:
精华:
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP