Ch2
Ch2
、
2*
一棵树T有
个 度数为 的顶点, , 其余顶点都是树叶,则T有几片树叶?
由图的性质有:
由树的性质有:
上面两个式子联立可得:
4*
证明:如果T是树,且
,则T至少有n片树叶
由2.2题的结论我可以可以得到:
得证
6*
证明:树有一个中心或两个中心,且有两个中心时,这两个中心相邻
方法一
可以使用删除叶子节点的方法,即证明删除
对于
所以u仍为
重复执行上述操作,最后只能得到
方法二
可以用最长轨法证明最长轨的中点为树的中心。
11*
求
生成树的个数
14*
用Kruskal算法求图中边权图最小的生成树
Kruskal的算法是有限选择边权较小的边,选择的顺序是和Prim算法不一样的是,如下图所示,红色标记的是最小生成树,序号则是顺序。
15*
边权图里的最小生成森林是权最小的生成森林,并且在生成森林中 保持原图中任意两个顶点的连通性。如何修改 Kruskal 算法来构造最小 生成森林,并指出时间复杂度。
**Kruskal算法 ** :
- 输入:加权图
- 输出:G的一棵生成树的边子集
过程如下:
- 从E
中选权最小的边 ; - 若已经选定边
,则从 中选取边 ,使得 - (i)边导出子图
不含圈; - (ii)在满足(i)的前提下,
的权最小,即
- (i)边导出子图
- 反复执行第(2)步,直到选出
为止
下面分类讨论:
如果知道G的连通片数,设为k
则在各连通片上分别执行原Kruskal算法,时间复杂度为:
如果不知道G的连通片数, 则需修改循环中止条件:
改为反复执行第(2)步,直到从剩余边集中选出任意一条边都会使边导出子图
含圈 时间复杂度为
20*
画出带权 0.2,0.17,0.13,0.1,0.1,0.08,0.06,0.07,0.03 的 Huffman 树
需要注意的是此题的权重之和并不是1,许多人误以为权重之和必须是1。
22*
证明引理2.1
给定
,则存在一课Huffman树,使得 对应的顶点时兄弟,且这两个顶点在二叉树中的深度都等于树高
不妨设
因为
且
交换
- 当
时, ,与树 同为Huffman树; - 当
时, ,与树 为Huffman矛盾;
则
若
由
25
证明: 在
阶的连通图G中 ,存在至少两个顶点,从G中删除这两个顶点后所得图仍为连通。
由推论2.2可知连通图
由定理2.2可知树T至少有两片叶,记为
从
从G中删去