赞
踩
树是
n
n
n(
n
≥
0
n≥0
n≥0)个结点的有限集。当
n
=
0
n=0
n=0时,称为空树。
任意一棵非空树应具有以下特性:
没有后继的结点称为“叶子结点”(或 叶结点/终端结点),有后继的结点称为“分支结点”(或 非终端结点)。
显然,树的定义是递归的,即树的定义中用到了其自身。树是一种递归的数据结构,其作为一种逻辑结构的同时也是一种分层结构,具有以下两个特点:
由此可推算出,结点数为 n n n的树中有 n − 1 n-1 n−1条边。(边是连接起树中两个结点之间的“线”)
结点的度指的是该结点的孩子数量,而每个结点与其每个孩子都由唯一的边相连,因此树中所有结点的度数之和等于树中的边数之和。树中除了根结点以外的结点都有唯一的双亲结点,因此结点数 n n n等于边数之和再加 1 1 1,也就是树的总结点数等于总度数 + 1 +1 +1,加的这个“ 1 1 1”就是根结点。
度为 m m m的树:
m m m叉树:
这句话等价于“
m
m
m叉树的第
i
i
i层至多有
m
i
−
1
m^{i-1}
mi−1个结点(
i
≥
1
i≥1
i≥1)”。
第
1
1
1层:有
m
0
=
1
m^0=1
m0=1个结点,根结点。
第
2
2
2层:有
m
1
=
m
m^1=m
m1=m个结点,当根结点的度为
m
m
m时。
第
3
3
3层:有
m
2
m^2
m2个结点,当根结点的度为
m
m
m,并且根结点的每个孩子结点的度都为
m
m
m时。
……
以此类推,到第
i
i
i层时,这一层至多有
m
i
−
1
m^{i-1}
mi−1个结点。
(下图来自王道考研408数据结构课程视频 - 树的性质)
由“常见考点 3 3 3”可知,当各层结点数达到最大时,高度为 h h h的 m m m叉树第i层有 m i − 1 m^{i-1} mi−1个结点,对其求和,有:
一个简单的等比数列求和问题。
高度为
h
h
h的
m
m
m叉树,至少有
h
h
h个结点,即每一层只有
1
1
1个结点。
而高度为
h
h
h的度为
m
m
m的树,至少有
h
+
m
−
1
h+m-1
h+m−1个结点,即除第一层的某一层有
m
m
m个结点,其余层均只有
1
1
1个结点。
要使
m
m
m叉树的高度最小,则每个结点要有尽可能多的孩子。
因此,设除叶结点的每个结点均有
m
m
m个孩子。由“常见考点
4
,
4,
4,”可知,高度为
h
h
h的
m
m
m叉树至多有
m
h
−
1
m
−
1
\frac{{{m}^{h}}-1}{m-1}
m−1mh−1个结点。假设这
n
n
n个结点有
h
h
h层,则有:
因为
n
n
n一定要大于
h
−
1
h-1
h−1层的最大结点数,同时小于等于
h
h
h层的最大结点数,这样才能让这
n
n
n个结点满足有
h
h
h的条件。
对这个不等式同时乘以
m
−
1
m-1
m−1再加
1
1
1,得:
再同时对 m m m取对数,有:
所以解得 h h h的取值范围为:
当 h h h的值满足: h min = ⌈ log m ( n ( m − 1 ) + 1 ) ⌉ {{h}_{\min}}=\left\lceil {{\log }_{m}}\left( n\left( m-1 \right)+1 \right) \right\rceil hmin=⌈logm(n(m−1)+1)⌉(向上取整)时上式成立。
总结一下,考点
2
2
2和考点
4
,
5
4, 5
4,5需要重点掌握。其余知识点也应反复学习,结合课后习题强化记忆加深理解,不熟悉的概念多加练习后自然就能记住。
从这一章开始将会步入408数据结构中最难的部分,树和图我以前在打OI的时候就学的不太好,得打起精神来了。
关于二叉树的内容将放在下一篇博客里。
以上。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。