树的基本概念及其性质(附详细推理过程)
Posted 薛定谔的猫ovo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了树的基本概念及其性质(附详细推理过程)相关的知识,希望对你有一定的参考价值。
树的定义
树是n(n≥0)结点的有限集合。n=0时,称为空树。
在任意以可非空树中应满足:
1)有且仅有一个特定的称为根的结点。
2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集合,其中每个集合本身又是一棵树,并且称为根结点的子树。
显然,树的定义是递归的,是一种递归的数据结构。树作为一种逻辑结构,同时也是一种分层结构,具有以下两个特点:
1)树的根结点没有前驱结点,除根结点外的所有结点有且只有一个前驱结点。
2)树中所有结点可以有零个或多个后继结点。
树适合表示具有层次结构的数据,树种的某个结点最多只和上一层的一个结点(即其父结点)有直接关系,因此在n个结点的树中有n-1条边。
基本术语和概念
祖先结点与子孙结点:
以结点K为例,根A到结点K的唯一路径上的任意结点,称为结点K的祖先结点。
如结点B、A都是结点K的祖先结点,而结点K是结点B的子孙结点。
双亲结点、孩子结点与兄弟结点:
以结点K为例,路径上最接近结点K的结点E称为结点K的双亲结点,而结点K为结点E的孩子结点。
根A是树中唯一没有双亲的结点。
有相同双亲的结点称为兄弟结点。如结点K和结点L有相同的双亲结点E,即K和L为兄弟结点。
结点的度与树的度:
树中一个结点的子结点的个数称为该结点的度。
树中结点的最大度数称为树的度。
如结点B的度为2,结点D的度为3,树的度为3。
分支结点与叶子结点:
度大于0的结点称为分支结点(又称非终端结点),度为0(没有孩子结点)的结点称为叶子结点(又称终端结点)。
在分支结点中,每个结点的分支数就是该结点的度。
结点的深度、高度和层次:
结点的层次从根开始定义,根结点为第1层(有些地方将根结点定义为第0层),它的子结点为第2层,以此类推。
结点的深度是从根结点开始自顶向下逐层累加的。
结点的高度是从叶结点开始自底向上逐层累加的。
树的高度(又称深度)是树中结点的最大层数。如上图树的高度为4。
有序树和无序树:
树中结点的子树从左到右是有次序的,不能交换,这样的树称为有序树,有序树中,一个结点的子结点按照从左到右的顺序出现是有关联的,反之则称为无序树。上图所示的树就是一棵有序树,若将子结点的位置互换,则变成一棵不同的树。
路径和路径长度:
树中两个结点之间的路径是由这两个结点之间所经过的结点序列构成的,而路径长度是路径上所经过的边的个数。
在上图中,结点A和结点K的路径长度为3,中间经过结点B和结点E。
注意:由于树中的分支是有向的,即从双亲结点指向孩子结点,所以树中的路径是从上向下的,同一双亲结点的两个孩子结点之间不存在路径。
森林:
森林是m(m≥0)棵互不相交的树的集合。
森林的概念和树的概念十分相近,只要把树的根结点删去就成了森林。反之,只要给n棵独立的树加上一个结点,并把这n棵树作为该结点的子树,则森林就变成了树。
树的性质
树具有如下基本的性质:
1)树中的结点数 = 所有结点的度数 + 1
这个很容易理解:每个结点的度数 = 孩子结点的个数,最后再加上根结点,就是树中的结点数了。
2)度为m的树中,第i层上至多有mi-1个结点
求最多的结点数,那么每个结点的度均为m。
第 i 层上的结点数 = 第 i-1 层结点的度数,也就是m*(第 i-1 层的结点个数) = m*m*(第 i-2 层的结点个数) = … = mi-1*(第1层的结点数)= mi-1(共乘了i次)。
3)高度为h的m叉树至多有(mh-1)/(m-1)个结点
由树的上个性质可知,m叉树第 i 层至多有mi-1个结点。那么高度为h的m叉树的结点数至多:
S = mh-1 + mh-2 + mh-3 + … + m + 1 = (mh-1)/(m-1)
该树现在是个满m叉树。
4)具有n个结点的m叉树的最小高度为⌈logm(n(m-1)+1)⌉
求最小高度也就是每层结点数最多时的高度,即该树是一棵完全m叉树,设其高度为h。
由树的第4个性质,有 n ≤ (mh-1)/(m-1),解得 h ≥ logm(n(m-1)+1) 。
故h为⌈logm(n(m-1)+1)⌉。
另外,实际上有 (mh-1-1)/(m-1) +1≤ n ≤ (mh-1)/(m-1),故最小高度h也可以为 ⌊logm((n-1)(m-1)+1)⌋ + 1。
以上是关于树的基本概念及其性质(附详细推理过程)的主要内容,如果未能解决你的问题,请参考以下文章