道路桥梁工程技术专业 - cqvie.edu.cn · 思想道德 修养与法 律基础 b类 课程目标:帮助学生树立中国特色社会主义共同理想和社会主义核心价值观,树立正
第三章 树 3.1 树的有关定义
description
Transcript of 第三章 树 3.1 树的有关定义
第三章 树3.1 树的有关定义
给定一个图 ,如果它不含任何回路,我们就叫它是林,如果 又是连通的,即这个林只有一个连通支,就称它是树。
EVG ,G
树的有关定义 定义 3.1.1
一个不含任何回路的连通图称为树,用 表示。 中的边称为树支,度为 1 的节点称为树叶。 树的每条边,都不会属于任何回路。这样的边叫
割边。
TT
树的有关定义 定义 3.1.2
设 是 的一条边,若 比 的连通支树连通支数增加,则称 是 的一条割边。
显然,图 删去割边 之后,结点 分属于不同的分支。
Ge eGG ' Ge G
G vue , vu,
树的有关定义 定理 3.1.1 是割边,当且仅当 不属于 的任何回路。 证明:若 属于 的某个回路,则 中仍
存在 到 的道路,故结点 和 属于同一连通支, 不是割边。反之,若 不是割边,则 与 的连通
支数一样。于是 和 仍属于同一连同支,故 中存在道路 就是 的一个回路。
u
vue , e G
eGG '
G
'G
G vue ,v
'Gu v
e eu v
evuPvuP ,,, G
树的有关定义 定理 3.1.2
设 是结点数为 的树,则下列性质等价:1. 连通且无回路2. 连通且每条都是割边3. 连通且有 条边4. 有 条边且无回路5. 的任意两结点间有唯一道路6. 无回路 , 但在任两结点间加上一条边后恰有一个
回路
T 2n
T
T
T
T
T
T
1n1n
树的有关定义 定理 3.1.3 树 中一定存在树叶结点。 证明:由于 是连通图,所以任一结点 ,都
有 。若无树叶,则 。 这样 矛盾。 定义 3.1.3 如果 是图 的支撑子图 , 而且又是一棵树 , 则称
是 的一棵支撑树 , 或称生成树 , 又简称 的树。
)(TVvi 1)( ivd 2)( ivd
nvdmn i )(2
11
TT
T GG G
T
3.6 Huffman 树 定义 3.6.1
除树叶外,其余结点的正度最多为 2 的外向树称为二叉树。如果它们的正度都是 2 ,称为完全二叉树。
Huffman 树 定义 3.6.1
如果二叉树 T 的每个树叶结点 vi 都分别赋以一个正实数wi ,则称 T 是赋权二叉树。从根 v0 到树叶 vi 的路径P(v0,vi) 所包含的边数计为该路径的长度 li ,这样二叉树的路径总长是
vi 是树叶
如果给定了树叶数目以及它们的权值,可以构造许多不同的赋权二叉树,在这些赋权二叉树中,必定存在路径总长WPL 最小的二叉树,这样的树称为最优二叉树。
i iwilWPL
Huffman 树 例 3.6.1
已知英文字符串 adacatedecade 。试用二进制字符串代替某个字幕,并保证该英文字符串与二进制串构成一一对应。
解:该字符串中有字母 a,d,e,c,t ,它们分别出现 4,3,3,2,1次。令每个字母对应二叉树的一个树叶,根到树叶的路径是唯一的,而且这条路径决不会是根到另一个树叶路径的一部分。这样跟到树叶的路径与该字母构成一一对应。如果在树 T 中令向左的边为 0 ,向右的边为 1 ,那么这些路径又与二进制串构成了一一对应。
Huffman 树 哈夫曼给出了一个计算 Huffman 树算法:1. 对 个权值进行排序,满足
2. 计算 作为中间结点 的权, 的左儿子是 ,右儿子是 。在权序列中删去 和 ,加入 。若 ,否则转 (1) 。
....21 niii www
21 iii www iv
1iv
2iv
1iw
2iw 1, nnwi
iv
2n
1n
Huffman 树 Huffman 树算法的计算复杂度是 O(n log n) 。
Huffman 树 定理 3.6.1
由 Huffman 算法得到的二叉树是最优二叉树
3.7 最短树 3.7.1 Kruskal 算法 Kruskal 算法的描述如下: T←Φ , 当 |T| < n – 1 且 E≠Φ 时 , begin1. e←E 中最短边 .2. E←E-e.3. 若 T+e 无回路 , 则 T←T+e. end 若 |T|<n-1 ” ”打印 非连通 , 否则输出最短树
最短树 定理 3.7.1
是赋权连通图 的最短树,当且仅当对任意的余树边 ,回路
满足其边权 证明 : 必要性,如果存在一条余树边 ,满足 , 则 得到新树 比 更加短 , 与 是最短树矛盾。
eCaawew ,
)'( eECC ee
),( eaT 'T
',EVT EVG ,'EEe
)(, eaCaawew e
e
T T
最短树 充分性,若存在比 还短的树 , 则 ,设 则 构成唯一回路 。如果对任意的 关于 的余树边 ,它与回路 里的
树支边 都有 ,则 ,与假设矛盾 . 因此一定存在某边 ,
对于某条边 , 满 足 。
TT '
TTe 'eC
)( TCaa e )()( awew )()( ' TwTw
TCa e )()( awew
TTe '
eC
TTe '
T 'T
eT 'T T
最短树 定理 3.7.2
Kruskal 算法的计算复杂性是 ,其中是迭代次数。
mpmO log p
最短树 3.7.2 Prim 算法 Prim 算法的基本思想是:首先任选一结点 构成集合 ,然后不断在 中选一条到 中某
点 ( 比如 ) 最短的边 进入树 ,并且 ,直到 。
T'V0v 'VV 'V
v vu,
uVV '' VV '
最短树 Prim 算法的描述如下 :1. 2. While U≠V do begin3. 4. 5. 6. For v V-U do
end
.,,1 tUTvt
.),(min),( vtwutwUVv
).,( uteTT .uUU
.),(),,(min),( vuwvtwvtw
最短树 定理 3.7.3
设 是赋权连通图 的结点真子集, 是二端点分跨在 和 的最短边,则 中一定存在包含 的最短树干。
证明:设 是 的一棵最短树,若 ,则 构成唯一回路。该回路一定包含 和 其
中 , 。由以知条件 ,作 得到的仍是最短树。
0T 0Te),(' vue
'Vu 'VVv )'()( ewew )',(0 eeT
eT 0
'V EVG , e
'V 'VV Ge
Ge
最短树 定理 3.7.4
Prim 算法的结果是一得到赋权连通图 的一棵最短树。
证明:首先证明它是一棵支撑树。采用归纳法,初始 ,它是由 导出的树,设
是 导出的树,则下一次迭代时, 中增加一新结点 中也加入一条与 相连的边,因 是连通的,则有 条边 , 它是由 导出的一棵树。因此最终 是 的支撑树。
TvU ,1
G
U
1U
T U UTu, u T
UT G
最短树 以下再证 是一棵最短树 设 是 的一棵最短树, ,由定理 3.7.3 ,对
任意的 ,一定有最短树 ,其中 。继续对 如此处理,直到最终 它仍然是最短树。
0TT
0TTe )',(' 0 eeTT 0' TCe e 'T TT '
T
G0T