上一篇博客我们讲解了树与二叉树的组成等规则,这篇博客我们来说一下树和二叉树的遍历问题。
什么是树,二叉树?
对于这个还不清楚的可以去看我的上一篇博客:[软考]之树和二叉树下面咱们直接来看一张树和二叉树的图。二叉树只是树的一种特殊形式,即每个根只有至多两个子树,当然如果愿意,你也可以自己定义三叉树,四叉树。。。。。
树的遍历
首先应该知道,树的遍历有三种:先序遍历、后序遍历、层次遍历。二叉树的遍历与树的遍历相同,但是多了一种中序遍历(相当于广度优先遍历),下面咱们以上图为例来讲解如何进行树和二叉树的遍历。
先序遍历
先序遍历的顺序是根、左、右,对于任一子树,都按照根、左、右的顺序来遍历,下面来遍历咱们的图:
树:A B E F C D G I H
二叉树:A B D H I E C F G
后序遍历
后序遍历的顺序是左、右、根,对于任一子树,都按照左、右、根的顺序来遍历,下面看咱们图的遍历:
树:E F B C I G H D A
二叉树:H I D E B F G C A
层次遍历
层次遍历的顺序是按照顺序,一层一层的进行遍历,这个比较简单,直接上结果:
树:A B C D E F G H I
二叉树:A B C D E F G H I
最后这个中序遍历对于二叉树才有意义,树的遍历用不到这个,因为树的子树可能不止两个,可能有很多个,大家注意一下。
中序遍历
中序遍历的顺序是左、根、右,对于任一子树,都按照左、根、右的顺序来遍历,下面看看咱们的遍历:
树:无
二叉树:H D I B E A F C G
以上就是树和二叉树的遍历,对于前三种,其实树和二叉树的遍历是一样的,只有中序遍历是二叉树有而树所没有的。对于二叉树地先中后遍历来说,其实都是指根的位置,比如先:根左右,中:左根右,后:左右根,是不是超级简单了!