在这里说一下二叉树的三种遍历(前序,中序,后序)
————————有不足之处欢迎在评论中指出(握手)
二叉树的基础知识在这里就不说了,树的基本构造个人认为百度百科就讲的挺详细(点击打开链接)。
正文:
前序遍历:是指先从根开始,再依次找寻左子结点、右子结点。
学习时的经验就是“看图学习”
第一份图:
这样看来:
1.先找最基本的根结点(词穷),这里是a。
2.接着找以a为根结点的左子结点,这里是b。
3.而以b为根结点也会出现左右结点,这就又有了一个左结点d,d再连e(d-e)。
4.去找以b为根结点的右结点(为f-g)
5.以b为根结点的左右结点已找完,那便找上一层,也就是以a为根结点的右结点(b为左结点),便为c。
综上所述,上图的前序遍历为(a-b-d-e-f-g-c)
——————————
中序遍历:其实差不多(呵),就是把“根结点-左结点-右结点”的顺序换为“左结点-根结点-右结点”
以上图为例(再贴波图):
中序遍历为:d-e-b-g-f-a-c
注意点就是从下向上,就是从e-d,从子结点到结点。(个人认为差别就这一点,如果不懂再细述)
——————————
后序遍历:和以上两种进行区别便是先从左子结点开始,在去找右子结点,最后去找根结点。
那么这个图的后序遍历为:e-d-g-f-b-c-a
——————————————————————
再贴一个层序遍历吧:
其实层序遍历顾名思义就是一层一层的访问,一层访问结束再访问下一层(注意,这里指的是整颗树,不再单纯指某子树了)
那么以上面那张图为例
本图的层序遍历便是:a-b-c-d-f-e-g
最后再贴上让我豁然开朗那个图(侵删)