• 沒有找到結果。

第十六章 树

N/A
N/A
Protected

Academic year: 2021

Share "第十六章 树"

Copied!
37
0
0

加載中.... (立即查看全文)

全文

(1)

第十六章 树

主要内容

无向树及其性质

生成树

根树及其应用

(2)

16.1 无向树及其性质

定义16.1

(1) 无向树——连通无回路的无向图 (2) 平凡树——平凡图

(3) 森林——至少由两个连通分支(每个都是树)组成 (4) 树叶——1度顶点

(5) 分支点——度数2的顶点

(3)

无向树的等价定义

定理 16.1 设 G=<V,E> 是 n 阶 m 条边的无向图,则下面各命

是等价的:

(1) G 是树

(2) G 中任意两个顶点之间存在惟一的路径 .

(3) G 中无回路且 m=n1.

(4) G 是连通的且 m=n1.

(5) G 是连通的且 G 中任何边均为桥 .

(6) G 中没有回路,但在任何两个不同的顶点之间加一条新

边,在所得图中得到惟一的一个含新边的圈 .

(4)

(3)(4). 只需证明 G 连通 . 用反证法 . 否则 G 有 s ( s2 )个连

分支都是小树 . 于是有 mi=ni1, ,

这与 m=n1 矛盾 .

证明思路

(2)(3). 若 G 中有回路,则回路上任意两点之间的路径不 惟一 . 对 n 用归纳法证明 m=n1.

n=1 正确 . 设 nk 时对,证 n=k+1 时也对:取 G 中边 e , Ge 有且仅有两个连通分支 G1,G2( 为什么 ?) . nik ,由归纳 假设得 mi=ni1, i=1,2. 于是, m=m1+m2+1=n1+n22+1=n1.

) 2 (

1 1

  

s s n

s n

m m

s i

i s

i

i

(1) (2). 关键一步是 , 若路径不惟一必有回路 .

(5)

(4)

(5). 只需证明 G 中每条边都是桥 . 为此只需证明命题

“G

是 n 阶 m 条边的无向连通图,则 mn1”.

命题的证明 : 对 n 归纳 .

eE, Ge 只有 n2 条边,由命题可知 Ge 不连通,故 e 为桥 .

证明思路

(5)(6). 由 (5) 易知 G 为树,由 (1)(2) 知, u,vV ( uv ) , u 到 v 有惟一路径,加新边 (u,v) 得惟一的一个圈 .

(6) (1). 只需证明 G 连通,这是显然的 .

(6)

) (

2 )

( )

1 (

2 n    d v

i

xnx

由上式解出 x  2.

定理 16.2 设 T 是 n 阶非平凡的无向树,则 T 中至少有两片树叶 .

无向树的性质

证 设 T 有 x 片树叶,由握手定理及定理 16.1 可知,

(7)

例题

例 1

已知无向树 T 中有 1 个 3 度顶点, 2 个 2 度顶点,其余顶点 全是树叶,试求树叶数,并画出满足要求的非同构的无向树 .

解 解本题用树的性质 m=n1 ,握手定理 . 设有 x 片树叶,于是 n = 1+2+x = 3+x,

2m = 2(n1) = 2(2+x) = 13+22+x 解出 x = 3 ,故 T 有 3 片树叶 .

T

的度数列应为 1, 1, 1, 2, 2, 3

易知 3 度顶点与 1 个 2 度顶点

相邻与和 2 个 2 度顶点均相邻

(8)

例 2 已知无向树 T 有 5 片树叶, 2 度与 3 度顶点各 1 个,其余顶 点的度数均为 4 ,求 T 的阶数 n ,并画出满足要求的所有非同 构的无向树 .

例题

解 设 T 的阶数为 n, 则边数为 n1 , 4 度顶点的个数为 n7.

由握手定理得

2m = 2(n1) = 51+21+31+4(n7)

解出 n = 8 , 4 度顶点为 1 个 .

(9)

T

的度数列为 1, 1, 1, 1, 1, 2, 3, 4 ,共有 3 棵非同构的无向 树,如图所示 .

例题

(10)

不一定连通,也不一定不含回路,如 图所示

T

定义 16.2 设 G 为无向图

(1) G 的树—— T 是 G 的子图并且是树

(2) G 的生成树—— T 是 G 的生成子图并且是树

(3) 生成树 T 的树枝—— T 中的边 (4) 生成树 T 的弦——不在 T 中的边

(5) 生成树 T 的余树 ——全体弦组成的集合的导出子

T

16.2 生成树

(11)

推论 2 T 的边数为 mn+1.

推论 3 为 G 的生成树 T 的余树, C 为 G 中任意一个圈

,则 C 与 一定有公共边 .

证 否则, C 中的边全在 T 中,这与 T 为树矛盾 .

T

T

定理 16.3 无向图 G 具有生成树当且仅当 G 连通 .

生成树存在条件

推论 1 G 为 n 阶 m 条边的无向连通图,则 mn1.

证 必要性显然 .

充分性用破圈法(注意:在圈上删除任何一条边,不破坏

连通性)

(12)

基本回路系统

定理 16.4

设 T 为 G 的生成树, e 为 T 的任意一条弦,则 Te 中 含一个只有一条弦其余边均为 T 的树枝的圈 . 不同的弦对应的 圈也不同 .

证 设 e=(u,v) ,在 T 中 u 到 v 有惟一路径,则 e 为所求的圈 .

定义 16.3

设 T 是 n 阶 m 条边的无向连通图 G 的一棵生成树,设

e1, e2, …, emn+1

为 T 的弦 . 设 C

r

为 T 添加弦 e

r

产生的只含弦

er

、其余边均为树枝的圈 . 称 C

r

为 G 的对应树 T 的弦 e

r

的基本

回路或基本圈, r=1, 2, …, mn+1. 并称 {C1, C2, …,Cmn+1}

G

对应 T 的基本回路系统,称 mn+1 为 G 的圈秩,记作  (G).

求基本回路的算法:设弦 e=(u,v) ,先求 T 中 u 到 v 的路径

,再并上弦 e ,即得对应 e 的基本回路 .

(13)

基本割集的存在

定理 16.5

设 T 是连通图 G 的一棵生成树, e 为 T 的树枝,则 G 中存在只含树枝 e ,其余边都是弦的割集,且不同的树枝对

应的割集也不同 .

证 由定理 16.1 可知, e 是 T 的桥,因而 Te 有两个连通分支 T

1

和 T

2

,令

Se={e | e

E(G) 且 e 的两个端点分别属于 V(T

1)

和 V(T

2)}

由构造显然可知 S

e

为 G 的割集, eS

e

且 S

e

中除 e 外都是弦,

所以 S

e

为所求 . 显然不同的树枝对应的割集不同 .

(14)

定义 16.4 设 T 是 n 阶连通图 G 的一棵生成树, e1, e2, …, en1 为 T 的树枝, Si是 G 的只含树枝 ei的割集,则称 Si为 G 的对应 于生成树 T 由树枝 ei生成的基本割集, i=1, 2, …, n1. 并称

{S1,S2, …, Sn1} 为 G 对应 T 的基本割集系统,称 n1 为 G 的割 集秩,记作 (G).

基本割集与基本割集系统

求基本割集的算法

设 e 为生成树 T 的树枝, Te 为两棵小树 T

1

与 T

2

,令

Se

={e | e E(G) 且 e 的两个端点分别属于 T

1

与 T

2

}

则 S

e

为 e 对应的基本割集 .

(15)

解 弦 e, f, g 对应的基本回路分别为

C

e

=e b c, C

f

=f a b c, C

g

=g a b c d, C

={C

e

, C

f

, C

g

}.

树枝 a, b, c, d 对应的基本割集分别为

S

={a, f, g}, S ={b, e, f, g}, S ={c, e, f g}, S ={d, g},

例 3 图 5 实线边所示为生成树,求基本回路系统与基本割集系统

实例

(16)

最小生成树

定义 16.5 T 是 G=<V,E,W> 的生成树

(1) W(T)——T 各边权之和

(2) 最小生成树—— G 的所有生成树中权最小的

求最小生成树的一个算法

避圈法( Kruskal )设 G=<V,E,W> ,将 G 中非环边按权从小 到大排序: e

1, e2, …, em.

(1)

取 e

1

在 T 中

(2)

查 e

2

,若 e

2

与 e

1

不构成回路,取 e

2

也在 T 中,否则弃 e

2. (3)

再查 e

3,…,

直到得到生成树为止 .

(17)

例 4 求图的一棵最小生成树 .

所求最小生成树如 图所示, W(T)=38.

实例

(18)

16.3 根树及其应用

定义 16.6 T 是有向树(基图为无向树)

(1) T 为根树—— T 中一个顶点入度为 0 ,其余的入度均为

1.

(2) 树根——入度为 0 的顶点

(3) 树叶——入度为 1 ,出度为 0 的顶点 (4) 内点——入度为 1 ,出度不为 0 的顶点 (5) 分支点——树根与内点的总称

(6) 顶点 v 的层数——从树根到 v 的通路长度 (7) 树高—— T 中层数最大顶点的层数

(8) 平凡根树——平凡图

(19)

根树实例

根树的画法——树根放上方,省去所有有向边上的箭头

(20)

家族树与根子树

定义 16.7 T 为非平凡根树 (1) 祖先与后代

(2) 父亲与儿子 (3) 兄弟

定义 16.8 设 v 为根树 T 中任意一顶点,称 v 及其后代的导 出子

图为以 v 为根的根子树 .

(21)

根树的分类

(1) T 为有序根树——同层上顶点标定次序的根树

(2) 分类

r

叉树——每个分支点至多有 r 个儿子

r

叉有序树—— r 树是有序的

r

叉正则树——每个分支点恰有 r 个儿子

r

叉正则有序树

r

叉完全正则树——树叶层数相同的 r 叉正则树

r

叉完全正则有序树

(22)

定义 16.9 设 2 叉树 T 有 t 片树叶 v

1

, v

2

, …, v

t

,权分别为 w

1

,

w2

, …, w

t

,称 为 T 的权,其中 l(v

i

) 是 v

i

的层数 . 在所有有 t 片树叶,带权 w

1

, w

2

, …, w

t

的 2 叉树中

,权最小的 2 叉树称为最优 2 叉树 .

)

( )

(

1 i

t

i wil v

t

W

最优二叉树

求最优树的算法——

Huffman

算法

给定实数 w

1

, w

2

, …, w

t

,且 w

1

w

2

…w

t

.

(1) 连接权为 w

1

, w

2

的两片树叶,得一个分支点,其权为 w

1

+

w2

.

(2) 在 w

1

+w

2

, w

3

, …, w

t

中选出两个最小的权,连接它们对应 的顶点 ( 不一定是树叶 ) ,得新分支点及所带的权 .

(3) 重复 (2) ,直到形成 t1 个分支点, t 片树叶为止 .

(23)

例 5 求带权为 1, 1, 2, 3, 4, 5 的最优树 .

(24)

最佳前缀码

定义 16.10 设

1

, 

2

, …, 

n-1

, 

n

是长度为 n 的符号串 (1) 前缀——

1

, 

1

2

, …, 

1

2

…

n1

(2) 前缀码—— {

1

, 

2

, …, 

m

} 中任何两个元素互不为前缀 (3) 二元前缀码——

i

(i=1, 2, …, m) 中只出现两个符号,如

0 与 1.

如何产生二元前缀码?

定理 16.6 一棵 2 叉树产生一个二元前缀码 .

推论 一棵正则 2 叉树产生惟一的前缀码(按左子树标

0 ,右子树标 1 )

(25)

图所示二叉树产生的前缀码为

{ 00, 10, 11, 011, 0100, 0101 }

(26)

用 Huffman 算法产生最佳前缀码

例 6 在通信中,八进制数字出现的频率如下:

0 : 25% 1 : 20%

2 : 15% 3 : 10%

4 : 10% 5 : 10%

6 : 5% 7 : 5%

求传输它们的最佳前缀码,并求传输 10n ( n2 )个按上述

例出现的八进制数字需要多少个二进制数字?若用等长的

(长为 3 )的码字传输需要多少个二进制数字?

(27)

解 用 100 个八进制数字中各数字出现的个数,即以 100 乘各 频率为权,并将各权由小到大排列,得 w

1

=5, w

2

=5, w

3

=10, w

4

= 10, w

5

=10, w

6

=15, w

7

=20, w

8

=25. 用此权产生的最优树如图所示 .

求最佳前缀码

01---0 11---1

001---2 100---3

101---4 0001---5

00000---6 00001---7

W(T)=285

传 10

n

(n 2) 个

用二进制数字需

2.8510

n

个,

(28)

波兰符号法与逆波兰符号法

行遍或周游根树

T——

对 T 的每个顶点访问且仅访问一次 . 对 2 叉有序正则树的周游方式:

① 中序行遍法——次序为:左子树、根、右子树

② 前序行遍法——次序为:根、左子树、右子树

③ 后序行遍法——次序为:左子树、右子树、根

对图所示根树按中序、前序、

后序行遍法访问结果分别为:

b a (f d g) c e

a b (c (d f g) e)

b ((f g d) e c) a

(29)

用 2 叉有序正则树存放算式

存放规则

最高层次运算放在树根

后依次将运算符放在根子 树的根上

数放在树叶上

规定:被除数、被减数放 在左子树树叶上

算式 ((b+(c+d))a)((ef)(g+h)(ij))

(30)

波兰符号法

波兰符号法

按前序行遍法访问存放算式的 2 叉有序正则树,其结果不加 括号,规定每个运算符号与其后面紧邻两个数进行运算,运 算结果正确 . 称此算法为波兰符号法或前缀符号法 . 对上图的 访问结果为

   b + c d a   e f  + g h  i j 逆波兰符号法

按后序行遍法访问,规定每个运算符与前面紧邻两数运算,

称为逆波兰符号法或后缀符号法 . 对上图的访问结果为

b c d + + a  e f  g h + i j    

(31)

第十六章 习题课

主要内容

无向树及其性质

生成树、最小生成树、基本回路系统、基本割集系统

根树及其分类、最优树、最佳前缀码、波兰符号法、逆波 兰符号法

基本要求

深刻理解无向树的定义及性质

熟练地求解无向树

准确地求出给定带权连通图的最小生成树

深刻理解基本回路、基本割集的概念,并会计算

理解根树及其分类等概念

会画 n 阶( n 较小)非同构的无向树及根树( 1n6 )

(32)

为树叶数 t

t n

n

k i

i

2

k

i

i

t

n m

2

1

t n

i v

d t

n m

k i

i n

i

i k

i

i

    

   

2 1 2

) ( 2

2 2

2

2 )

2 (

3

 

k i

ni

i t

( 2 )

( 3 )

从而解出

练习 1

1. 无向树 T 有 n

i

个 i 度顶点, i=2, 3, …,k ,其余顶点全是 树叶,求 T 的树叶数 .

解 用树的性质:边数 m=n1 ( n 为阶数),及握手定理 .

(1)

(33)

2 .设 n 阶非平凡的无向树 T 中, (T)  k , k  1. 证明 T 至少

有 k 片树叶 . 证 反证法 .

否则, T 至多有 s 片树叶, s < k ,下面利用握手定理及树

性质 m = n1 推出矛盾 .

由于 (T)  k ,故存在 v0 , d(v0)  k. 于是,

s k

s n

v d n

m

n

i

i

    

 

) 1 (

2 )

( 2

2 2

1

由此解出 s  k ,这与 s < k 矛盾 .

练习 2

(34)

3 .设 G 为 n 阶无向简单图, n5 ,证明 G G 或 中必含圈 . 本题的方法很多,证明中用: G 边数之和为 K

n

边数 ,以及树的性质: m = n1.

G

2 1 (n n

方法一 . 反证法 . 否则 G 的各连通分支都是树 . 设 G 与 的连通分支分别为 G

1

, G

2

, …, G

s

和 G

1

, G

2

, …, G

s

.

ni

, m

i

与 n

j

, m

j

分别为 G

i

, G

j

的顶点数和边数 . 于是

G G

2 2

) ' (

2 ) 1 '

( )

1 (

2 ' ) 1

(

'

1 1

' 1 1

 

n s

s n

n n

m n m

n

s

j

j s

i

i s

j

j s

i

i

得 n

2

5n+4  0

解出 1  n  4, 矛盾于 n  5.

练习 3

(35)

方法二 . 在 G 中存在一个,比如说 G ,它的边数

用反证法证明 G 中必含圈 . 比方法一简单 .

G

4 ) 1 (

n n m

方法三 . 不妨设 G 的边数

由于 n5 ,得 mn. 再用反证法证明之,更简单 .

4

) 1 (

n n m

练习 3

(36)

4 .画出基图为图所示无向树的所有非同构的根树

练习 4

以 a, b, c 或 d 为根的根树同构,选 a 为根,则 根树如图 (1); 以 e 与 g 为根的根树同构,

取 g 为根,则根树如图 (2) ; 以 f 为根,如 图 (3) 所示 .

(1) (2) (3)

(37)

5 .设 T 是正则 2 叉树, T 有 t 片树叶,证明 T 的阶数 n=2t1.

方法一 . 利用正则 2 叉树的定义及树的性质直接证明 . (1) n = t+i (i 为分支点数 )

(2) n = m+1 ( m 为 T 的边数)

(3) m = 2i (正则 2 叉树定义)

由 (2) 、 (3) 得 ,代入( 1 )得 n = 2t1.

2

1

n i

练习 5

方法二 . 利用握手定理及树的性质证 .

T

的树根为 2 度顶点,所有内点为 3 度顶点,当然叶为 1 度顶点,有

(1) 2m = 2+3(i1)+t

參考文獻

相關文件

按計算機得到 log 2 的近似值的確是十分簡便,但不免有學生會好奇,以前的數學家 是怎麼求出 log

•至最近連續居留港澳或 海外期間之計算,係以 本簡章申請時間截止日 為計算基準日往前回溯 推算6年或8年。但計算 至西元2015年8月31

一个运动场由长方形 PQRS 及两个半圆组成,如下图。若长方形 PQRS 的长度 PQ 为 100 m,运动场的周界为 400 m。求长方形 PQRS

(二)計算方式:雇主繼續僱用於前款計算期間內,預估成就勞動基準

進行 18 以內的加法和減法口算 學生須透過口算解主要以圖像闡述的應用 題,並以橫式作記錄。.. 加法和減法的直式在學習單位 1N4

也就是設定好間隔時間(time slice)。所有的 程序放在新進先出的佇列裡面,首先CPU

古代希臘人對幾何學的貢獻,眾所周知。有位數學家把它

求出 Select Case 運算式之值,並逐一與 Case 運算式值串列比對,若符合則執行該 Case 之後的敘述區段。1. 如果所有的