数据结构—树的定义与性质

目录

1.树的定义

2.基本术语

3.树的性质


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个结点。

相关推荐
sjsjs113 小时前
【数据结构-堆】力扣2530. 执行 K 次操作后的最大分数
数据结构·算法·leetcode
星迹日4 小时前
数据结构:ArrayList与顺序表
java·数据结构·经验分享·笔记·顺序表
終不似少年遊*4 小时前
数据结构之线性表
数据结构·笔记·python·算法·线性表
qiu_shi_5 小时前
1.2.1-2部分数据结构的说明02_链表
数据结构
绍兴贝贝7 小时前
代码随想录算法训练营第五十二天|KM101.孤岛的总面积|KM102.沉没孤岛|KM103.水流问题|KM104.建造最大岛屿
数据结构·人工智能·python·算法·力扣
SkyrimCitadelValinor7 小时前
python【数据结构】
开发语言·数据结构·python
就爱学编程7 小时前
重生之我在异世界学编程之数据结构与算法:深入数和二叉树篇
数据结构
_周游7 小时前
【C语言】_const修饰指针变量
c语言·数据结构·算法
爱学习的徐徐13 小时前
【数据结构】链表链表
数据结构·链表
高 朗16 小时前
【算法刷题】链表
数据结构·算法·链表