目录
1.树的定义
树是n(n≥0)个结点的有限集。
n=0时,称为空树。
(1)树有且只有一个特定的结点,称为根节点。
(2)当n>1时,其余结点可分为n(n>0)个互不相交的有限集T1,T2......Tm,其中每个集合本身又是一棵树,称为根的子树。
2.基本术语
1)祖先、子孙、双亲、孩子、兄弟和堂兄弟。
考虑结点K,从根A到结点K的唯一路径上的所有其他结点,称为结点K的祖先。如结点B是结点K的祖先,而K是B的子孙,结点8的子孙包括EFKL。路径上最接近结点K的结点E称为K的双亲,而K为E的孩子。根是树中唯一没有双亲的结点有相同双亲的结点称为兄弟,如结点K和结点L有相同的双亲E,即K和L为兄弟。双亲在同一层的结点互为堂兄弟,结点G与EFHLJ互为堂兄弟。
2)结点的度和树的度。
树中一个结点的孩子个数称该节点的度。树中结点的最大的度数称为树的度,如结点B的度为2,结点D的度为3,则树的度为3。
3)分支结点和叶结点。
度大于0的结点称为分支结点(又称非终端结点);度为0(没有孩子结点)的结点称为叶结点(又称终端结点)。在分支结点中,每个结点的分支数就是该结点的度。根节点度不为0,也被称为分支结点。
4)结点的深度、高度和层次。
结点的层次从树根开始定义,根结点为第1层,它的孩子为第2层,以此类推。结点的深度就是结点所在的层次。树的高度(或深度)是树中结点的最大层数。结点的高度是以该结点为根的子树的高度。图5.1中树的高度为 4。
5)有序树和无序树。
树中结点的各子树从左到右是有次序的,不能互换,称该树为有序树,否则称为无序树。
3.树的性质
1)树的结点树n等于所有结点的度数之和加1。
结点的度是指该结点的孩子数量,每个结点与其每个孩子都由唯一的边相连,一次树中所有结点的度数之和等于树中的边数之和。树中的结点(除根外)都有唯一的双亲,因此结点数n等于边数之和加1,即所有结点的度数之和加1。
2)度为m的树中第i层上至多有m^(i-1)个结点(i≥1)。
第1层至多有1个结点(即根结点),第2层至多有m个结点,第3层至多有m^2个结点。使用数学归纳法可推出第i层至多有m^(i-1)个结点。
3)高度为h的m叉树至多有((m^h)-1)/(m-1)个结点。
当各层节点数达到最大时,树中至多有1+m+m^2+m^3+......m^(h-1) = (m^h)-1/(m-1)。
4)度为 m、具有n个结点的树的最小高度h为logm(n(m-1)+1)(取上限,不满整取整数的上限)。
**[logm(n(m-1)+1)**读作log以m为底,(n(m-1)+1)的对数。
为使树的高度最小,在前h-1层中,每层的结点数都要达到最大,前h-1层最多有**(m^(h-1)-1)/(m-1)** 个结点,前h层最多有**((m^h)-1)/(m-1)** 个结点。因此**(m^(h-1)-1)/(m-1)<n≤** ((m^h)-1)/(m-1), 即 h-1<logm(n(m-1)+1)≤h, 解得 h(min) =「logm(n(m-1)+ 1)。
注意区分表达式的括号范围,都是分子分母的形式,**((m^h)-1)/(m-1)**即m的h次方减1,除以m减1。
5)度为m、具有n个结点的树的最大高度h为n-m+1。
由于树的度为m,因此至少有一个结点有m个孩子,它们处于同一层。为使树的高度最大,其他层可仅有一个结点,因此最大高度(层数)为n-m+1。由此,也可逆推出度为h、度为m的树至少有h+m-1个结点。