冯伟森_栾新成_离散数学_机械工业出版社 教程课间 精品课程系列 教材离散数学(第23讲)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
,每个接线板看成是其它的分枝点,灯泡看成 是叶,则问题就是求总的分枝点的数目。由定 理11.5可以算得i = (28 -1)/3 = 9,因此 ,至少需要9块接线板才能达到目的。
2013-7-4
计算机学院
5
例11.6
假设有一台计算机,它有一条加法指令,可
计算3个数的和。如果要求9个数x1,x2,x3,x4,x5,
1.0
0.5
图4
1.9
Fra Baidu bibliotek1.4 0.8 0.4 0.1
2013-7-4
1.0 0.6 0.5
0.9
0.5
0.4
图5
0.3
计算机学院 17
3.3 1.9 1.4 0.8 0.4 0.1 0.3 0.4 0.6 0.5 1.0 0.9
0.5
图6
2013-7-4
计算机学院
18
习题十一 14、15、16、18、19、21
2013-7-4
计算机学院
15
例11.9
给定一组权0.1,0.3,0.4,0.5,0.5, 0.6,0.9,求对应的最优二叉树。
1.0
0.8
0.8 0.5 0.5
0.4 0.1
图1
2013-7-4
0.4
0.4 0.3
0.4 0.1 0.3
0.4
0.3
0.1
图2
计算机学院
图3
16
1.4 0.8 0.4 0.1 0.3 0.4 0.6 0.5
(a)
2013-7-4 计算机学院
(b)
6
把有序树转换为二叉树
1) 从根开始,保留每个父亲同其最左边儿子的 连线,撤销与别的儿子的连线。 2) 兄弟间用从左向右的有向边连接。 3) 按如下方法确定二叉树中结点的左儿子和右 儿子:直接位于给定结点下面的结点,作为 左儿子,对于同一水平线上与给定结点右邻 的结点,作为右儿子,依此类推。
把v改成带权为w1+w2的叶之后的树记为T1,则T1
是带权为w1+w2,w3, …,wt的最优二叉树。
2013-7-4
计算机学院
14
Huffman算法
给定实数w1,w2, …,wt,且w1≤w2≤…≤wt。 ① 连接权为w1,w2的两片树叶,得一个分支点,其 权为w1+w2; ② 在w1+w2 ,w3, …,wt 中选出两个最小的权,连 接它们对应的顶点(不一定是树叶),得新分 枝点及所带的权; ③ 重复②,直到形成t-1个分支点,t片树叶为止。
v4
v8 v11
8
(c)
2013-7-4
距离、层数、高
v1 v2 v5 v6 v10 v3 v4 v7 v8 v9 v11 (a) v12 v13 v2 v5 v6 v10 v1 v3 v4 v7 v8 v9 v11 (b) v12 v13
定义11.6 在根树中,从树根到任一结点v的道路 长度,称为根到该结点的距离(也称为结点的层 数);称层数相同的结点在同一层上;所有结点 的层数中最大的称为根树的高。
2013-7-4
计算机学院
19
2013-7-4 计算机学院 9
定理11.6 若完全二叉树有i个分支点,且各 分支点的道路长度之和为L,各树叶的道路长度 之和为J, 则 J=L+2×i。
证明:对分支点数目i进行归纳。 当i = 1时,L = 0,J = 2,故J = L + 2i成立。 假设i = k时定理结论成立。
2013-7-4
反过来,我们也可以将二叉树还原为有序树。
2013-7-4
计算机学院
7
例11.7
将下图a转化为一棵二叉树。
v1 v2 v5 v6 v9 v4 v8 v11 v2 v5 v6 v9 v1 v4 v8 v11 v9 v2
v1
v3
v7 v10 (a)
v3
v7 v10 (b)
计算机学院
v3
v5 v6 v7 v10
计算机学院
10
当i=k+1时,设在完全二叉树T中,v是一个 道路长度为l的分枝点且其两个儿子v1 和v2 都是 叶,则T–{v1,v2}是含k个分枝点的完全二叉树 T’。 由归纳假设J’=L’+2k, 比较T和T’=T–{v1,v2},可得 J = J’+ 2(I + 1)-l = J’+l+2, L= L’+l,于是 J = L’+ 2k +l+2 =L+2(k + 1), 即J = L+ 2i。
2013-7-4 计算机学院 3
这个定理实质上可以用每局有m个选手参 加的单淘汰制比赛来说明。t个叶表示t个参赛 的选手,i则表示必须安排的总的比赛局数. 每一局由m个参赛者中产生一个优胜者,最后 决出一个冠军。
2013-7-4
计算机学院
4
例11.5
设有28盏电灯,拟公用一个电源插座,问 需要多少块具有四插座的接线板? 解: 这个公用插座可以看成是正则四叉树的根
x6,x7,x8,x9之和,问至少要执行几次加法指令?
解 用3个结点表示3个数,将表示3个数之和的 x8 x9 结点作为它们的父结点。这样本问题可理解为 x6 x7 求一个完全三叉树的分支点问题。把9个数看 x4 x5 成树叶。由定理11.5知,有(3-1)i = 9-1,得 x 1i x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x1 x2 x3 = 4。所以至少要执行4次加法指令。
i 1 t
使W(T)取最小值的T,这个T称为带权 w1,w2, …,wt 的最优二叉树。
2013-7-4
计算机学院
13
Huffman定理(11.7)
在带权为w1≤w2≤…≤wt的最优二叉树中,必有T
满足:
① 权为w1,w2的两片树叶v1,v2是兄弟;
② 设v1,v2的父亲是v,如果从T中删去v1,v2 ,并
冯伟森
Email:fws365@scu.edu.cn
2013年7月4日星期四
主要内容 1.完全二叉树 2.Huffman算法
2013-7-4
计算机学院
2
定理11.5
若T是完全m叉树,其树叶数为t,分支点数为 i,则下式成立: (m-1)×i=t-1 证明 由假设知,该树有i+t个结点。 由定理11.1知,该树的边数为i+t-1。 因为所有结点的出度之和等于边数(握手定 理),所以根据完全的m叉树的定义知,有 m×i=i+t-1 即 (m-1)×i=t-1
2013-7-4 计算机学院 11
例11.8
1 2 3 4 4 3 2 2
1
2
i=5,L=7,J=17
2013-7-4
计算机学院
12
最优二叉树
定义:设T是有t个叶的二叉树,各叶分别带权 w1,w2, …,wt,各叶的道路长度分别为 l1,l2,…,lt,定义T的权为 W (T ) l i w i 。