二叉树的相关概念及其遍历规则

树的递归定义:

树是n(n>0)个结点的有限集,这个集合满足下面条件:
      ⑴有且仅有一个结点没有前驱(父亲结点)。该结点称为树的根。
      ⑵除根外,其余的每一个结点都有且仅有一个前驱;
      ⑶除根外,每个结点都通过唯一的路径连到根上(否则有环)。

节点的分类

结点一般分成三类

⑴根结点:没有父亲的结点。在树中有且仅有一个根结点。如节点R
⑵分支结点:除根结点外,有孩子的结点称为分支结点。如a,b,c,x,t,d,i
⑶叶结点:没有孩子的结点称为树叶。如w,h,e,f,s,m,o,n,j,u

度:

⑴结点的度:一个结点的子树数目称为该结点的度。如结点i的度为3。节点t的度为2,节点b的度为1。显然,全部树叶的度为0。
⑵树的度:全部结点中最大的度称为该树的度(宽度)。上图中的树的度为3。

深度:

树是分层次的。结点所在的层次是从根算起的。根结点在第一层,根的儿子在第二层,其余各层依次类推。即某个节点在第k层,则该节点的后件均在第k+1层。在树中。父结点在同一层的全部结点构成兄弟关系。树中最大的层次称为树的深度。亦称高度。上图中树的深度为5。

树的遍历:

二叉树的遍历(traversing binary tree)是指从根结点出发,按照某种次序依次访问二叉树中所有的结点,使得每个结点被访问依次且仅被访问一次。下面介绍几种遍历及其规则:
前序遍历:若树为空,则空操作返回。否则,先访问根节点,然后前序遍历左子树,再前序遍历右子树。

遍历结果:ABDHIEJCFKG

中序遍历:若树为空,则空操作返回。否则,从根节点开始(注意并不是先访问根节点),中序遍历根节点的左子树,然后是访问根节点,最后中序遍历根节点的右子树。

遍历结果:HDIBEJAFKCG

后续遍历:若树为空,则空操作返回。否则,从左到右先叶子后节点的方式遍历访问左右子树,最后访问根节点。

遍历结果:HIDJEBKFGCA

层序遍历:若树为空,则空操作返回。否则,从树的第一层,也就是根节点开始访问,从上到下逐层遍历,在同一层中,按从左到右的顺序结点逐个访问。

遍历结果:ABCDEFGHIJK

发布了7 篇原创文章 · 获赞 8 · 访问量 1335

猜你喜欢

转载自blog.csdn.net/R1qing2yun3/article/details/81510391