第三章 树 3.1 树的有关定义

21
第第第 第 3.1 第第第第第第 给给 给给 给给给给给给给 给给 给给 给给给给给 给给 给给给给给 给给给给给给给 给给给给给 给给给 ,一, 给给 E V G , G

description

第三章 树 3.1 树的有关定义. 给定一个图 ,如果它不含任何 回路 ,我们就叫它是林,如果 又是连通的,即这个林只有一个连通支,就称它是树。. 树的有关定义. 定义 3.1.1 一个不含任何 回路 的连通图称为树,用 表示。 中的边称为树支,度为 1 的节点称为树叶。 树的每条边,都不会属于任何回路。这样的边叫割边。. 树的有关定义. 定义 3.1.2 设 是 的一条边,若 比 的连通支树连通支数增加,则称 是 的一条割边。 - PowerPoint PPT Presentation

Transcript of 第三章 树 3.1 树的有关定义

Page 1: 第三章 树 3.1  树的有关定义

第三章 树3.1 树的有关定义

给定一个图 ,如果它不含任何回路,我们就叫它是林,如果 又是连通的,即这个林只有一个连通支,就称它是树。

EVG ,G

Page 2: 第三章 树 3.1  树的有关定义

树的有关定义 定义 3.1.1

一个不含任何回路的连通图称为树,用 表示。 中的边称为树支,度为 1 的节点称为树叶。 树的每条边,都不会属于任何回路。这样的边叫

割边。

TT

Page 3: 第三章 树 3.1  树的有关定义

树的有关定义 定义 3.1.2

设 是 的一条边,若 比 的连通支树连通支数增加,则称 是 的一条割边。

显然,图 删去割边 之后,结点 分属于不同的分支。

Ge eGG ' Ge G

G vue , vu,

Page 4: 第三章 树 3.1  树的有关定义

树的有关定义 定理 3.1.1 是割边,当且仅当 不属于 的任何回路。 证明:若 属于 的某个回路,则 中仍

存在 到 的道路,故结点 和 属于同一连通支, 不是割边。反之,若 不是割边,则 与 的连通

支数一样。于是 和 仍属于同一连同支,故 中存在道路 就是 的一个回路。

u

vue , e G

eGG '

G

'G

G vue ,v

'Gu v

e eu v

evuPvuP ,,, G

Page 5: 第三章 树 3.1  树的有关定义

树的有关定义 定理 3.1.2

设 是结点数为 的树,则下列性质等价:1. 连通且无回路2. 连通且每条都是割边3. 连通且有 条边4. 有 条边且无回路5. 的任意两结点间有唯一道路6. 无回路 , 但在任两结点间加上一条边后恰有一个

回路

T 2n

T

T

T

T

T

T

1n1n

Page 6: 第三章 树 3.1  树的有关定义

树的有关定义 定理 3.1.3 树 中一定存在树叶结点。 证明:由于 是连通图,所以任一结点 ,都

有 。若无树叶,则 。 这样 矛盾。 定义 3.1.3 如果 是图 的支撑子图 , 而且又是一棵树 , 则称

是 的一棵支撑树 , 或称生成树 , 又简称 的树。

)(TVvi 1)( ivd 2)( ivd

nvdmn i )(2

11

TT

T GG G

T

Page 7: 第三章 树 3.1  树的有关定义

3.6 Huffman 树 定义 3.6.1

除树叶外,其余结点的正度最多为 2 的外向树称为二叉树。如果它们的正度都是 2 ,称为完全二叉树。

Page 8: 第三章 树 3.1  树的有关定义

Huffman 树 定义 3.6.1

如果二叉树 T 的每个树叶结点 vi 都分别赋以一个正实数wi ,则称 T 是赋权二叉树。从根 v0 到树叶 vi 的路径P(v0,vi) 所包含的边数计为该路径的长度 li ,这样二叉树的路径总长是

vi 是树叶

如果给定了树叶数目以及它们的权值,可以构造许多不同的赋权二叉树,在这些赋权二叉树中,必定存在路径总长WPL 最小的二叉树,这样的树称为最优二叉树。

i iwilWPL

Page 9: 第三章 树 3.1  树的有关定义

Huffman 树 例 3.6.1

已知英文字符串 adacatedecade 。试用二进制字符串代替某个字幕,并保证该英文字符串与二进制串构成一一对应。

解:该字符串中有字母 a,d,e,c,t ,它们分别出现 4,3,3,2,1次。令每个字母对应二叉树的一个树叶,根到树叶的路径是唯一的,而且这条路径决不会是根到另一个树叶路径的一部分。这样跟到树叶的路径与该字母构成一一对应。如果在树 T 中令向左的边为 0 ,向右的边为 1 ,那么这些路径又与二进制串构成了一一对应。

Page 10: 第三章 树 3.1  树的有关定义

Huffman 树 哈夫曼给出了一个计算 Huffman 树算法:1. 对 个权值进行排序,满足

2. 计算 作为中间结点 的权, 的左儿子是 ,右儿子是 。在权序列中删去 和 ,加入 。若 ,否则转 (1) 。

....21 niii www

21 iii www iv

1iv

2iv

1iw

2iw 1, nnwi

iv

2n

1n

Page 11: 第三章 树 3.1  树的有关定义

Huffman 树 Huffman 树算法的计算复杂度是 O(n log n) 。

Page 12: 第三章 树 3.1  树的有关定义

Huffman 树 定理 3.6.1

由 Huffman 算法得到的二叉树是最优二叉树

Page 13: 第三章 树 3.1  树的有关定义

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 ” ”打印 非连通 , 否则输出最短树

Page 14: 第三章 树 3.1  树的有关定义

最短树 定理 3.7.1

是赋权连通图 的最短树,当且仅当对任意的余树边 ,回路

满足其边权    证明 : 必要性,如果存在一条余树边 ,满足 , 则 得到新树 比 更加短 , 与 是最短树矛盾。

eCaawew ,

)'( eECC ee

),( eaT 'T

',EVT EVG ,'EEe

)(, eaCaawew e

e

T T

Page 15: 第三章 树 3.1  树的有关定义

最短树 充分性,若存在比 还短的树 , 则 ,设 则 构成唯一回路 。如果对任意的 关于 的余树边 ,它与回路 里的

树支边 都有 ,则 ,与假设矛盾 . 因此一定存在某边 ,

对于某条边 , 满 足 。

TT '

TTe 'eC

)( TCaa e )()( awew )()( ' TwTw

TCa e )()( awew

TTe '

eC

TTe '

T 'T

eT 'T T

Page 16: 第三章 树 3.1  树的有关定义

最短树 定理 3.7.2

Kruskal 算法的计算复杂性是 ,其中是迭代次数。

mpmO log p

Page 17: 第三章 树 3.1  树的有关定义

最短树 3.7.2 Prim 算法 Prim 算法的基本思想是:首先任选一结点  构成集合 ,然后不断在 中选一条到 中某

点 ( 比如 ) 最短的边 进入树 ,并且 ,直到 。

T'V0v 'VV 'V

v vu,

uVV '' VV '

Page 18: 第三章 树 3.1  树的有关定义

最短树 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

Page 19: 第三章 树 3.1  树的有关定义

最短树 定理 3.7.3

设 是赋权连通图 的结点真子集, 是二端点分跨在 和 的最短边,则 中一定存在包含 的最短树干。

证明:设 是 的一棵最短树,若 ,则 构成唯一回路。该回路一定包含 和 其

中 , 。由以知条件 ,作 得到的仍是最短树。

0T 0Te),(' vue

'Vu 'VVv )'()( ewew )',(0 eeT

eT 0

'V EVG , e

'V 'VV Ge

Ge

Page 20: 第三章 树 3.1  树的有关定义

最短树 定理 3.7.4

Prim 算法的结果是一得到赋权连通图 的一棵最短树。

证明:首先证明它是一棵支撑树。采用归纳法,初始 ,它是由 导出的树,设

是 导出的树,则下一次迭代时, 中增加一新结点 中也加入一条与 相连的边,因 是连通的,则有 条边 , 它是由 导出的一棵树。因此最终 是 的支撑树。

TvU ,1

G

U

1U

T U UTu, u T

UT G

Page 21: 第三章 树 3.1  树的有关定义

最短树 以下再证 是一棵最短树 设 是 的一棵最短树, ,由定理 3.7.3 ,对

任意的 ,一定有最短树 ,其中 。继续对 如此处理,直到最终 它仍然是最短树。

0TT

0TTe )',(' 0 eeTT 0' TCe e 'T TT '

T

G0T