看到这个的时候又忘记该怎么思考数据结构的问题了,于是打算来复习一波。
顺便也复习了一下二叉树的遍历规则,写一下学习文档。
树的遍历顺序大体分为三种:先序,中序,后序遍历。
如图所示二叉树:
前序遍历(先序):前序遍历可以记为根左右,若二叉树为空,则结束返回。
前序遍历的规则:
(1)访问根节点
(2)前序遍历左子树
(3)前序遍历右子树
这里需要注意:在完成第2,3步的时候,也是要按照前序遍历二叉树的规则完成。
前序遍历的输出结果:ABDECF
中序遍历:中序遍历可以记为左根右,也就是说在二叉树的遍历过程中,首先要遍历二叉树的左子树,接着遍历根节点,最后遍历右子树。
同样,在二叉树为空的时候,结束返回。
中序遍历的规则:
(1)中序遍历左子树
(2)访问根节点
(3)中序遍历右子树
注意:在完成第1,3步的时候,要按照中序遍历的规则来完成。
中序遍历的输出结果:DBEAFC
后序遍历:后序遍历可以记为左右根,也就是说在二叉树的遍历过程中,首先按照后序遍历的规则遍历左子树,接着按照后序遍历的规则遍历右子树,最后访问根节点。
在二叉树为空的时候,结束返回。
后序遍历二叉树的规则:
(1)后序遍历左子树
(2)后序遍历右子树
(3)访问根节点
注意:在完成1,2步的时候,依然要按照后序遍历的规则来完成。
后序遍历的输出顺序:DEBFCA
回到最初的问题进行分析
写出草稿
字太丑了亲 推出是这样的二叉树再来后序遍历,由左右根的原则
可知第一个是C,没有右子树,直接B,然后到F,E,IJH,最后GDA
也就是CBFEIJHGDA
网友评论