离散数学树
离散数学 求生成树的个数
在离散数学中,生成树(Spanning Tree)是一个图(Graph)的子图,它包含图中的所有顶点,并且是一个树(Tree)。
生成树的一个重要性质是它不包含任何环(Cycle)。
求一个给定图的生成树个数是一个经典问题,通常使用矩阵树定理(Matrix Tree Theorem)来解决。
矩阵树定理给出了一个图的生成树个数的计算公式,它基于图的拉普拉斯矩阵(Laplacian Matrix)的行列式。
拉普拉斯矩阵是一个方阵,其大小为图的顶点数,矩阵的元素定义如下:•如果i和j是不同的顶点,则矩阵的第i行第j列的元素是顶点i和j之间的边的权重(如果存在边的话),否则是0。
•对于每个顶点i,矩阵的第i行第i列的元素是顶点i的度(即与顶点i相邻的边的数量)的负值。
矩阵树定理指出,图的生成树个数等于其拉普拉斯矩阵的任何一个n-1阶主子式的行列式值的绝对值。
n是图的顶点数,n-1阶主子式意味着去掉矩阵中的一行和一列后得到的矩阵。
下面是一个简单的例子,说明如何使用矩阵树定理计算生成树的个数:假设有一个包含4个顶点的简单图,其边和权重如下:A -- 2 -- B| |1 3 1| |C -- 4 -- D1 -3 1 00 1 -3 40 0 1 -4主子式的行列式值。
去掉第一行和第一列后,我们得到:1 01 -3 40 1 -4x3矩阵的行列式,我们得到:1 * 1) - (0 * 0) = 12 - 1 = 11过程可能涉及复杂的行列式计算,特别是对于大型图来说。
在实际应用中,通常会使用专门的数学软件或库(如Python中的NumPy或SciPy)来进行这些计算。
此外,还有一些算法(如Kruskal算法和Prim算法)可以用来构造生成树,但它们并不直接计算生成树的总数。
这些算法通常用于找到图的一个生成树,而不是计算所有可能的生成树的数量。
离散数学 图论-树
中序遍历(次序:左-根-右) 前序遍历(次序:根-左-右) 后序遍历(次序:左-右-根) b 中序遍历: c b e d g f a I k h j 前序遍历: a b c d e f g h i k j 后序遍历: c e g f d b k i j h a
例:给定二叉树,写出三种访问 结点的序列
是否为根树
(a) (no)
(b) (no)
(c) (yes)
从树根到T的任意顶点v的通 路(路径)长度称为v的层数。 v5的层数为 层。
层数最大顶点的层数称为树 高.将平凡树也称为根树。 右图中树高为( )。
v1
v2 v3
v4 v8v5Fra bibliotekv6v7 v10
v9
在根树中,由于各有向边的方向是一 致的,所以画根树时可以省去各边上的所 有箭头,并将树根画在最上方.
等长码:0-000;1-001;2-010;3-011;4-100; 5-101;6-110;7-111. 总权值: W2=3*100=300
4、二叉树的周游(遍历)
二叉树的周游:对于一棵二叉树的每一个结点都访问一次且 仅一次的操作 1)做一条绕行整个二叉树的行走路线(不能穿过树枝) 2)按行走路线经过结点的位臵(左边、下边、右边) 得到周游的方法有三种: 中序遍历(路线经过结点下边时访问结点) 访问的次序:左子树-根-右子树 前序遍历(路线经过结点左边时访问结点) 访问的次序:根-左子树-右子树 后序遍历(路线经过结点右边时访问结点) 访问的次序:左子树-右子树-根
2、根树中顶点的关系
定义:设T为一棵非平凡的根树, v2 ∀vi,vj∈V(T),若vi可达vj,则称vi为 vj的祖先,vj为vi的后代; v4 v5 若vi邻接到vj(即<vi,vj>∈E(T),称 vi为vj的父亲,而vj为vi的儿子 v8 若vj,vk的父亲相同,则称vj与vk是兄 弟
《离散数学》课件-第16章树
18
16.3 根树及其应用
19
定义(有向树)设D是有向图,如果D的基图是无向 树,则称D为有向树。
在有向树中最重要的是根树。 定义16.6(根树)一棵非平凡的有向树,如果恰有 一个顶点的入度为O,其余所有顶点的入度均为1,则称该 树为根树。 入度为0的顶点称为树根,入度为1出度为0的顶点称 为树叶,入度为1出度不为0的点称为内点,内点和树根统 称为分支点。 树根到一个顶点的有向通路的长度称为该顶点的层数。 层数最大顶点的层数称为树高。 平凡树也称为根树。
2
16.1 树及其性质
3
定义16.1(树和森林) 连通且无回路的无向图称为无向树,简称为树,常用
T表示树。 平凡图为树,称为平凡树。 非连通且每个连通分支是树的无向图称为森林。 T中度数为1的顶点(悬挂顶点)称为树叶,度数大于
1的顶点称为分支点。 称只有一个分支点,且分支点的度数为n-1的n(n≥3)
定义16.8(子树)设T为一棵根树,则其任一顶点v 及其后代导若将层数相同的顶点都 标定次序,则称T为有序树。
根据每个分支点的儿子数以及是否有序,可将根树 分成如下若干类:
定义(跟树分类)设T为一棵根树 (1)若T的每个分支点至多有r个儿子,则称T为r叉 树。又若r叉树是有序的,则称它为r叉有序树。 (2)若T的每个分支点恰好有r个儿子,则称T为r叉 正则树。又若r叉正则树是有序的,则称它为r叉正则有 序树。 (3)若T为r叉正则树,且每个树叶的层数均为树高, 则称T为r叉完全正则树。又若r叉完全正则树是有序的, 则称它为r叉完全正则有序树。
8
平均编码长度为:L = ∑ P( i )× l( i ) = 2.53bit i=1
离散数学 树
离散数学树
离散数学中的树(Tree)是一种常见的图论结构,它是一种无向、连通且没有简单回路的无向图,或者是一个有向连通图,其中每个节点都只有唯一一个父节点(除了根节点)。
树形结构中的每一个节点都可以视为一个子树的根节点,因为它下面连接了若干个子节点,这样就形成了一棵向下生长的树状结构。
树形结构还有一个重要的特点就是它具有很好的递归性质,因为每个节点下面都可以再建立一棵子树,这样就可以逐层递归地构建出整棵树。
在离散数学中,树被广泛应用于算法设计、数据结构以及对计算机网络和信息系统进行建模等领域。
树的深度和广度优先遍历、树的一些基本性质(如高度、度、叶子节点等)以及树的遍历应用在图的搜索算法、排序、哈夫曼编码、抽象语法树等算法中都有广泛的应用。
离散数学——树ppt课件
无向树的性质
定理16.2 设T是n阶非平凡的无向树,则T中至少有两片树叶。
证明
设T有x片树叶,由握手定理及定理16.1可知,
2(n 1) d(vi ) x 2(n x)
由上式解出x≥2。
12
例16.1
例16.1 画出6阶所有非同构的无向树。
解答 设Ti是6阶无向树。 由定理16.1可知,Ti的边数mi=5, 由握手定理可知,∑dTi(vj)=10,且δ(Ti)≥1,△(Ti)≤5。 于是Ti的度数列必为以下情况之一。
(1) 1,1,1,1,1,5 (2) 1,1,1,1,2,4 (3) 1,1,1,1,3,3 (4) 1,1,1,2,2,3 (5) 1,1,2,2,2,2
(4)对应两棵非同构的树, 在一棵树中两个2度顶点相邻, 在另一棵树中不相邻, 其他情况均能画出一棵非同构 的树。
13
例16.1
人们常称只有一个分支点,且分支点的度数为n-1的 n(n≥3)阶无向树为星形图,称唯一的分支点为星心。
知,G-e已不是连通图, 所以,e为桥。
9
(5)(6)
如果G是连通的且G中任何边均为桥,则G中没有回路,但在任 何两个不同的顶点之间加一条新边,在所得图中得到唯一的 一个含新边的圈。
因为G中每条边均为桥,删掉任何边,将使G变成不连通图, 所以,G中没有回路,也即G中无圈。
又由于G连通,所以G为树,由(1) (2)可知,
u,v∈V,且u≠v,则u与v之间存在唯一的路径Г,
则Г∪(u,v)((u,v)为加的新边)为G中的圈, 显然圈是唯一的。
10
(6)(1)
如果G中没有回路,但在任何两个不同的顶点之间加一条新边, 在所得图中得到唯一的一个含新边的圈,则G是树。
离散数学7-树
(b)
(a)
V5
2
1
V7
8
9
V2
V4
2
3
V8
5
V1
V1
V4
V5
1
3
V7
V6
8
V4
2
V8
5
6
V1
1
V5
6
V7
V6
8
3
V8
5
6
V7
9
V3
(e)
V3
(f)
(g)
22
V2
V3
(h)
五.应用举例——求最小生成树
例3 用管梅谷算法求下图的最小生成树。
23
五.应用举例——求最小生成树
例3 用管梅谷算法求下图的最小生成树。
成圈。
首先证明T无简单回路。对n作归纳证明。
(i) n=1时,m=n-1=0,显然无简单回路;
(ii)假设顶点数为n-1时无简单回路,现考察顶点数是n的情况:此时至少有一
个顶点v其次数d(v)=1。因为若n个顶点的次数都大于等于2,则不少于n条边,但这与
m=n-1矛盾。
删去v及其关联边得到新图T’,根据归纳假设T’无简单回路,再加回v及其关联
边又得到图T,则T也无简单回路。
再由图的连通性可知,加入任何一边后就会形成圈,且只有一个圈,否则原图
中会含圈。
9
二. 基本定理——证明
证明(4):(3)(4),即证一个无圈图若加入任一边就形成圈,
则该图连通,且其任何一边都是桥。
若图不连通,则存在两个顶点vi和vj,在vi和vj之间没有路,若
加边(vi,vj)不会产生简单回路,但这与假设矛盾。由于T无简单回
离散数学 树(思维导图)
树
1
无向树:连通且不含任何简单回路的无向图称为无向树,简称树。
树中度数为1的顶点称为叶子,度数大于1的顶点称为分枝点
2
树的相关性质
定理1 : 设n(n≥2)阶无向连通图G的边数满足m=n-1,则图G中至少存在两个度数为
1的顶点
定理2 : 设T是(n,m)-无向图,则下述命题相互等价
1.T是树,即T连通且不存在简单回路
2.T的每一对相异顶点之间存在唯一的简单道路
3.T不存在简单回路,但在任何两个不相邻的顶点之间加一条新边后得到的图中存
在简单回路。
(也称作“极大无圈”)
4.T连通,但是删去任何一边后便不再连通,即T 中每一条边都是桥。
(也称作“极
小连通")
5.T是树,即T连通且不存在简单回路
6.T连通且m=n-1
7.T不存在简单回路且m=n-1
定理3 : 无向树都是平面图。
定理4 : 假设无向树T中有aᵢ个度数为i的顶点,aᵢ则T的叶子数为\sum \limits
_{i=3}(i-2) \times a_{i}+2
生成树 : 若连通图G的支撑子图T是一棵树,则称T为G的生成树
或支撑树 一个连通图可以有多个不同的支撑树。
最小生成树 : 给定一个无向连通赋权图,该图所有支撑树中各
边权值之和最小者称为这个图的最小支撑树。
kruskal算法
备注:
1. 根据这个定义,一阶简单图K₁也是树,称作平凡树,它是一个既无叶子又无分枝点的特殊树 由定义可知,树必定是不含重边和自环的,即树一定是简单图。
不含任何简单回路的图称为森林(显然,森林的每个连通分支都是树
2. 无向,连通,m=n-1。
离散数学及其应用课件:树
树
图7-13 二叉树
树
例7.11 计算机中存储的文件目录,目录可以包含子目录
和文件。图7-14用多叉树表示一个文件系统。C表示根目录,
可以表示成根树,内点表示子目录,树叶表示文件或空目录。
树
图7-14 多叉树表示的文件系统
树
2.二叉树的遍历
定义7.10 对于一棵根树的每个结点都访问一次且仅一次
树
图7-16 给定单词二叉搜索树
树
7.2.3 最优二叉树及其应用
1.哈夫曼树
树
例7.14 计算图7-17所示带权二叉树的权值。
图7-17-带权二叉树
树
7.2.1 根树的概念
定义7.6 一个有向图D,如果略去有向边的方向所得的无
向图为一棵无向树,则称D为有向树。换句话说,若有向图的
基图是无向树,那么这个有向图为有向树。入度为0的顶点称
为树根(Root),入度为1且出度为0的顶点称为树叶;入度为1且
出度大于0的顶点称为内点。内点和树根统称为分支点。
有一种特殊结构的有向树叫根树。
图7-2 无向图
树
树
例7.2 设T 是一棵树,它有三个2度结点,两个3度结点,一
个4度结点,求T 的树叶数。
树
7.1.2 生成树的概念与性质
1.生成树的概念
定义7.2 设G=<V,E>是无向连通图,T 是G 的生成子图,并
且T 是树,则称T 是G的生成树(SpanningTree),记为TG 。
树
定理7.1 设G=<V,E>是n 阶无向图,G 中有m 条边,则下面
关于G 是树的命题是等价的:
(1)G 连通而不含回路;
(2)G 的每对顶点之间具有唯一的一条路径;
离散数学-树
离散数学导论
. 树
1.2 生成树
➢定义9.10
图T称为无向图G的生成树(spanning tree), 如果T为G的生成子图且T为树。
✓定理9.17
任一连通图G都至少有一棵生成。
.. 树树
1.2 生成树
✓ 定理9.18
设G为连通无 向图,那么G的 任一回路与任一生 成树T的关于G的补 G – T ,至少有一 条公共边。
1.3 根树
➢ 定义9.15
每个结点都至多有两个儿子的根树称为 二元树(quasibinary tree)。类似地,每个结点都
至多有n个儿子的根树称为n元树。 对各分支结点 的诸儿子规定了次序(例如左兄右弟)的n 元树称
为n元有序树;若对各分支结点的已排序的诸儿子
规定了在图示中的位置(例如左、中、右),那么
弦组成G的一个割集,它被称为枝t-割集(t-cut set);
而每一条弦e与T中的通路构成一回路,它被称为弦e-回
路(e-circuit)。
. 树
1.2 生成树
✓ 定理9.20
在连通无向图G中,任一回路与任 一割集均有偶数条公共边。
. 树
1.2 生成树
✓ 定理9.21
设G为一连通无向图,T是G的生成树, S = {e1, e2, e3,…,ek}
✓ 定理9.19
设G为连通无 向图,那么G的任 一割集
与任一生成树至少
有一条公共边。
.. 树树
1.2 生成树
➢ 定义9.11
设T为图G的生成树,称T中的边为树枝(branch) 称G – T 中的边为弦(chord)。对每一树枝t,T–t分为
离散数学-第10章 树
避圈法
1
1
2
6
5
2
6
5
3
4
3
4
➢ 由于生成树的形式不惟一,故上述两棵生成树 都是所求的。
➢ 破圈法和避圈法的计算量较大,主要是需要找 出回路或验证不存在回路。
2023/11/30
算法10.2.3
求连通图G = <V, E>的生成树的广度优先搜索算法: (1)任选s∈V,将s标记为0,令L = {s},V = V-
(a)
(b)
(c)
(d)
(e)
2023/11/30
定义10.3.2
一棵非平凡的有向树,如果恰有一个结点的入度为 0,其余所有结点的入度均为1,则称之为根树 (Root Tree)或外向树(Outward Tree)。入度为0的 结点称为根(Root);出度为0的结点称为叶(Leaf); 入度为1,出度大于 0的结点称为内点(Interior Point) ; 又 将 内 点 和 根 统 称 为 分 支 点 (Branch Point)。在根树中,从根到任一结点v的通路长度, 称为该结点的层数(Layer Number);称层数相同的 结点在同一层上;所有结点的层数中最大的称为根 树的高(Height)。
2023/11/30
例10.2.5
利用广度优先搜索算法求下图的生成树。
1(a) 3(e) bd
4(gd1)(a) 3(e) bd
4(gh)
0(a-)
2e(b0)(a-)
h 3(e)
4(jh2e)(b)
h
4(h) j
3(e)
cf 1(a) 2(c)
3(ie1)(ca)
f 2(c)
【离散数学讲义】8.树与生成树53
2.弦:图G中,不在其生成树里的边,称作弦. 所有弦的集合,
称为该生成树的补.
v1
定理2 :连通图G中至少有一棵生成树.
v2
v3
证明:如果G中无回路, 则G本身就是树. v4
v5
如果G中有回路,可以通过反复删去回路
中的边,使之既无回路,又连通.就得到生成树.
思考题:设G是有n个结点,m条边的连通图, 问要删去多少
为该结点的层次. 同一层次的结点称为兄弟结点.
7.树高:从树根到各个叶结点的路径中, 最长路径的长度,
称为该树的高度(树高).
三.举例: a)语法树
主语
句子
谓语短语
冠词 形容词 名词 动词
宾语
The little
b)算术表达式树 ((a+b)÷c)×(d-e)
19
42,58 24,34,42 19,23,24,34
17,17,19,23,24
11,13,17,17,19,23
7,10,11,13,17,19,23 5,5,7,11,13,17,19,23
2,3,5,7,11,13,17,19,23
23 24
34
11 13 17 17
7 10
55
23
5. 最优树的应用举例
34 6 6 v6
Kruskal算法: 设G是有n个结点,m条边(m≥n-1)的连通图. S=Φ i=0 j=1
将所有边按照权升序排序: e1, e2, e3,… ,em
S=S∪{ai} j=j+1
|S|=n-1 Y 输出S 停 N
N
取ej使得
ai=ej i=i+1
离散数学第10章-树
10.2 生成树与割集(续)
• 2 定义10.3(秩,零度) 设图G有n个顶点,e条边,ω个分支, 称n-ω为图G的秩,称e-n+ω为图G的零度。 • G的秩是G的各分支中生成树的枝数之和。 • G的零度是G的各分支中生成树的连枝数 之和。
10.2 生成树与割集(续)
• 二、割集与断集 • 1 定义10.4(割集) 设D是图G的一个边集,若在G中删去 D的全部边后所得图的秩减少1,而D的 任何真子集均无此性质,则称D为G的割 集。 • 例 图10.2
10.2 生成树与割集(续)
• 5 定义10.7(基本回路/基本回路组) 设连通图G中给定生成树T,在T中加一条弦, 恰产生一条回路,称此回路为关于T的基本回 路。 连通图G有e条边,n个顶点,给定的生成树T 应有n-1条枝,e-n+1条弦,所以恰有e-n+1条基 本回路,这些回路的全体称为生成树T的基本 回路组。 给出生成树,求基本割集和基本回路。
10.3 最小生成树(续)
• 克鲁斯科尔算法 • 定理10.8 克鲁斯科尔算法所得到的图T是最小生 成树。
10.1 树及其性质(续)
• 推论 若G是n个顶点,ω个分枝的森林,则G 有n-ω条边。 • 定理10.2 在任一棵非平凡树T中,至少有两片树 叶。 • 证明
10.2 生成树与割集
• 一、生成树 • 1 定义10.2(生成树) 图G的生成子图是树T,称T为G的生成 树。 从G中删去T的边,得到的图称G的余枝, 记为Ť。 T中的边称为树枝(或枝)。 Ť中的边称为G的弦(或连枝)。 • 定理10.
• 四、树的基本变换 • 图10.4 • 1 定义10.8(树的基本变换) 设连通图G的生成树T,通过上述加一弦,再 G T 删去一枝得到另一棵生成树,这种变换称为树 的基本变换。 • 2 定义10.9(距离) 设连通图G的生成树Ti和Tj,出现在Ti而不出 现在Tj的边数称为Ti和Tj的距离,记为d(Ti, Tj)。
离散数学 第12章 树
在图12.2.1所示图中,e1, e2 , e3 , e4 , e5 , e9 ,为T 的树枝,
设它们对应的基本割集分别为
(S1, S2 , S3 , S4 , S。5 , 以S6 )树
枝为集合中第一个元素的方式写出它们(当然集合中
的元素是不讲顺序的,这里为了区分树枝和弦)。
S1 {e1, e7 , e8}、S2 、 {e2 , e7 , e8 , e10 , e11} S3 {e3 , e10 , e11} 、S4 {e4 , e6}
的割集是不同的也是显然的。
27
12.2.1 生成树
• 定义12.2.4 设T 是n阶连通图G 的一棵生成树,e1,e2 , ,en1
为G T的对的应树生枝成,S树i 是TG由的树只枝含e树i生枝成e的i 的基割本集割,则称 S i 为
集,i 1,2, , n 1。并称 {S1, S2 , , Sn1} 为G 对应T 的基本 割集系统,称n-1为G 的割集秩,记作 (G)。.
• 例题12.2.1 求图12.2.2所示两个图中的最
小生成树。
1
1
2
2
3
1
53
1
4
5
7
3
2
6
1
4
30
12.2.2 最小代价生成树
• 解 用避圈法算法,求出的(a)中最小生成树
为图T1 12.2.3中(a)中实线边所示的生成 树,W(T1) 6 。(b)中的最小生成树(b)为图 12.2.3中实边所示的生成树T2 ,W (T2 ) 12 。
环(否则,可以将所有的环先删去),将m 条边按权从小到大
顺序排列,设为 e1, e2 ,。,em
中取的e边1在不T能中构,成然回后路依,次则检取查e
离散数学——树
例16.2
例16.2 7阶无向图有3片树叶和1个3度顶点,其余3个顶点的度 数均无1和3。试画出满足要求的所有非同构的无向树。
解答 设Ti为满足要求的无向树,则边数mi=6,于是 ∑d(vj)=12=e+3+d(v4)+d(v5)+d(v6)。
由于d(vj)≠1∧d(vj)≠3,而且d(vj)≥1且d(vj)≤6,j=4,5,6, 可知d(vj)=2,j=4,5,6。于是Ti 的度数列为
s
s
s
m mi (ni 1) ni s n s
i 1
i 1
i 1
由于s≥2,与m=n-1矛盾。
(4)(5)
如果G是连通的且m=n1,则G是连通的且G中任何边均为桥。
只需证明G中每条边均为桥。 e∈E,均有|E(G-e)|=n-1-1=n-2, 由习题十四题49(若G是n阶m条边的无向连通图,则m≥n-1)可
(1) 1,1,1,1,1,5 (2) 1,1,1,1,2,4 (3) 1,1,1,1,3,3 (4) 1,1,1,2,2,3 (5) 1,1,2,2,2,2
(4)对应两棵非同构的树, 在一棵树中两个2度顶点相邻, 在另一棵树中不相邻, 其他情况均能画出一棵非同构 的树。
例16.1
人们常称只有一个分支点,且分支点的度数为n-1的 n(n≥3)阶无向树为星形图,称唯一的分支点为星心。
(1)(2)
如果G是树,则G中任意两个顶点之间存在唯一的路径。
存在性。 由vj(Gvi的v连j)通存性在及通定路理,1则4.vi5到的v推j 一论定(存在在n阶长图度G小中于,等若于从n顶-1点的v初i到 级通路(路径))可知,
u,v∈V,u与v之间存在路径。
唯一性(反证法)。 若路径不是唯一的,设Г1与Г2都是u到v的路径, 易知必存在由Г1和Г2上的边构成的回路, 这与G中无回路矛盾。
离散数学(第二版)第9章树
e10, 则分别产生初级回路e1e3e4, e1e4e5e2, e6e8e9,
•
•
•
e7e6e9e10。
•
第九章 树
这些初级回路有一个共同特点: 它们中均只含一条弦,
其余的边均是树枝, 我们称这样的回路为基本回路。 对于
G的每棵生成树T, m-n+1条弦对应着m-n+1个基本回路,
这些基本回路构成的集合称为对应T的基本回路系统。 显
例如图9.1.3中, T1和T2是图G的两棵生成树, 1 和2 是 分别对应于它们的余树。
第九章 树
图9.1.3 图的生成树和余树
第九章 树
由图9.1.3可见, G与T1、 T2的区别是G中有回路, 而 它的生成树中无回路, 因此要在一个连通图G中找到一棵 生成树, 只要不断地从G的回路上删去一条边, 最后所得 无回路的子图就是G的一棵生成树。 于是有如下定理。
这个问题的数学模型为: 在已知的带权图上求权最小 的生成树。
定义9.1.4 设无向连通带权图G=〈V, E, ω〉, G中带 权最小的生成树称为G的最小生成树(最优树)。
定理9.1.4 设连通图G的各边的权均不相同, 则回路 中权最大的边必不在G的最小生成树中。
证明略。
第九章 树
定理的结论是显然的, 由此寻找带权图G的最小生成 树, 可以采用破圈法, 即在图G中不断去掉回路中权最大 的边。
(5) 1, 1, 1, 1, 1, 2, 5
(6) 1, 1, 1, 1, 1, 3, 4
(7) 1, 1, 1, 1, 1, 1, 6
第九章 树
注意到, 不同构的度数列对应不同的树, 但对应同一 度数列的非同构的树不一定唯一, 所以对应(1)有T1, 对应 (2)有T2、 T3和T4, 对应(3)有T5和T6, 对应(4)有T7和T8, 对应(5)有T9, 对应(6)有T10, 对应(7)有T11(见图9.1.2)。
离散数学第十一章 树
v ,2 , , v w , w , , w 为权的叶分别为 vv 1 m。显然,在所有的叶中, 1 和 v 1 2 m
11.1 树与生成树
树及其性质
推论11.1 任何非平凡树至少有二片叶。
m dv ( i)≥ t 2 ( n t) ,由定理11.1中命题 证明:设(n,m)树T有t片叶,则 2
n
( n t ) ≥ t 2 n 2 t,即 t ≥ 2 (2),可得 2
例11.2 设 是一棵树,它有两个2度节点,一个3度节点,三个4度节点,求 的树 叶数。 解:设树 T 有 x 片树叶,则T
11.2 有向树及其应用
假定我们要找有m片叶,并且它们的权分别为 w 的最优二 , w , , w 1 2 m
, w , , w 叉树。不妨设 w 是按递增顺序排列的。 1 2 m
≤ w ≤ ≤ w 即w 。设<D,W>是满足要求的最优二叉树,D中以 1 2 m
' D vv ,2 的级最大。不妨设 v 1 和 v 2 与同一个分支结点 v ' 邻接,令 D 1
生成树。
图11.3
11.1 树与生成树
生成树与最小生成树
Kruskal算法
(1)选取G中权最小的一条边,设为 e
1
。令 S e ,i 1 1
(2)若 i n 1 ,输出G(S),算法结束。 (3)设已选边构成集合 S 。从E-S中选边 e i
11.1 树与生成树
离散数学第九章树知识点总结
生成树的存在性 定理 任何无向连通图都有生成树. 证 用破圈法. 若图中无圈, 则图本身就是自己的生成树.
否则删去圈上的任一条边, 这不破坏连通性, 重复进行 直到无圈为止,剩下的图是一棵生成树. 推论 1 设 n 阶无向连通图有 m 条边, 则 mn1. 推论 2 设 n 阶无向连通图有 m 条边, 则它的生成树的余树 有 mn+1 条边.
{0,10,010, 1010} 不是前缀码
例 在通信中,设八进制数字出现的频率如下:
0:25%
1:20%
2:15%
3:10%
4:10%
5:10%6:5% Nhomakorabea7:5%
采用 2 元前缀码, 求传输数字最少的 2 元前缀码 (称作最佳前
缀码), 并求传输 10n(n2)个按上述比例出现的八进制数字需
要多少个二进制数字?若用等长的 (长为 3) 的码字传输需要
推论 3 设
为 G 的生成树 T 的余树,C 为 G 中任意一个
圈,则 C 与
一定有公共边.
基本回路与基本回路系统
定义 设 T 是 n 阶 m 条边的无向连通图 G 的一棵生成 树,设 e1, e2, … , emn+1 为 T 的弦. 设 Cr 为 T 添加弦 er 产生的 G 中惟一的圈(由 er和树枝组成), 称 Cr 为对应 弦 er的基本回路或基本圈, r=1, 2, …, mn+1. 称{C1, C2, …, Cmn+1}为对应 T 的基本回路系统. 求基本回路的算法: 设弦 e=(u,v), 先求 T 中 u 到 v 的路径 uv, 再并上弦 e, 即得对应 e 的基本回路. 基本割集与基本割集系统定义 设 T 是 n 阶连通图 G 的一棵生成树, e1, e2, …, en1 为 T 的树枝,Si 是 G 的只含树枝 ei, 其他边都是弦
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
定理9.2
设T 是n阶非平凡的无向树,则T中至少有两片树叶. 证 设T有x片树叶,m条边。由握手定理及定理9.1可知,
m n 1
2m
d
(vi
)
x
2(n
x)
由上式解出x2.
5
例题
例1 已知无向树T中, 有1个3度顶点, 2个2度顶点, 其余顶点全 是树叶. 试求树叶数, 并画出满足要求的非同构的无向树.
有n-1个 前缀码:
{1, 2, …, m}, 其中1, 2, …, m为非空字符串, 且任何
两个互不为前缀 2元前缀码: 只出现两个符号(如0与1)的前缀码
如 {0,10,110, 1111}, {10,01,001,110}是2元前缀码 {0,10,010, 1010} 不是前缀码
13
无向图与最小生成树
对无向图或有向图的每一条边e附加一个实数w(e), 称作边e 的权. 图连同附加在边上的权称作带权图, 记作G=<V,E,W>. 设G是G的子图, G所有边的权的和称作G的权, 记作W(G).
最小生成树: 带权图的权最小的生成树
求最小生成树的算法——避圈法 (Kruskal) 设G=<V,E,W>, 将非环边按权从小到大排序:e1, e2, …, em. (1) 把e1加入T中 (2) 检查e2, 若e2与e1不构成回路, 则将e2加入T中, 否则弃去e2. (3) 检查e3,…, 重复进行直至得到生成树为止.
30
前缀码(续)
一棵2元树产生一个二元前缀码:对每个分支点, 若关联2条边, 则给左边标0, 右边标1; 若只关联1条边, 则可以给它标0(看作左边), 也可以标 1(看作右边). 将从树根到每一片树叶的通路上标的数字组成的字符 串记在树叶处, 所有树叶处的字符串构成一个前缀码.
如右图所示
21
根树的分类
有序树: 将根树每一层上的顶点都规定次序,这样的树称为有 序树
V0
V1
V2
V3 V4
V5
V6
V7
比如规定节点顺序:从上到下,从左到右
22
r元树: 根树的每个分支点至多有r个儿子 点的出度不超过r
r元完全树: 根树的每个分支点恰有r个儿子 内点的度数=2
解 用树的性质m=n1和握手定理. 设有x片树叶,于是 n=1+2+x=3+x, 2m=2(n1)=2(2+x)=13+22+x
解出x=3,故T有3片树叶. T的度数列为1, 1, 1, 2, 2, 3 有2棵非同构的无向树, 如图所示
6
例题
例2 已知无向树T有5片树叶, 2度与3度顶点各1个, 其余顶点的 度数均为4. 求T的阶数n, 并画出满足要求的所有非同构的 无向树.
14
实例
例 求图的一棵最小生成树
W(T)=38
15
412
3
4
76
57
8
412
3
4
76
57
8
16
9.2 根树及其应用--据有向图定义的树
有向树 根树、树根、树叶、内点、分支点 家族树、根子树、有序树 r元树(r元有序树) r元正则树(r元有序正则树) r元完全正则树(r元有序完全正则树) 最优2元树与Huffman算法 前缀吗与最佳前缀吗 中序行遍法、前序行遍法、后续行遍法 波兰符号法与逆波兰符号法
20
家族树
定义 把根树看作一棵家族树: (1) 若顶点 a 邻接到顶点 b, 则称 b 是 a 的儿子, a 是
b 的父亲; (2) 若b和c为同一个顶点的儿子, 则称b和c是兄弟;
(3) 若ab且a可达b, 则称a是b的祖先, b是a的后代.
设v为根树的一个顶点且不是树根, 称v及其所有后 代的导出子图为以v为根的根子树.
11
基本割集与基本割集系统
定义 设T是n阶连通图G的一棵生成树, e1, e2, …, en1为T 的树枝,Si是G的只含树枝ei, 其他边都是弦的割集, 称Si为 对应生成树T由树枝ei生成的基本割集, i=1, 2, …, n1. 称 {S1, S2, …, Sn1}为对应T的基本割集系统. 理解:基本割集是图G的割集,其边有弦+一条树枝构 成;有几条树枝就有几个基本割集; 基本割集用边的集合表示;
(1)G是树(连通无回路); (2)G中任意两个顶点之间存在惟一的路径(初级通路); (3)G中无回路且m=n1; (4)G是连通的且m=n1; (5)G是连通的且G中任何边均为桥; (6)G中没有回路, 但在任何两个不同的顶点之间加一条新
边后所得图中有惟一的一个含新边的圈.
4
无向树的性质(续)
3.置权集S:=(S-{w1,w2}∪{w1+w2} 4.检查S中是否只有一个元素? 是就停止,否则转入2
28
实例
例 求带权为1, 1, 2, 3, 4, 5的最优树. 解题过程由下图给出,W(T)=38 (不唯一)
29
前缀码
设 =12…n-1n是长度为n的符号串 的前缀:
12…k , k=1,2,…,n-19来自基本回路与基本回路系统
定义:设T是n阶m条边的无向连通图G的一棵生成树,设
e一1的, e圈2,(由…er,和em树n枝+1为组T成的)弦, 称. 设CrC为r为对T应添弦加e弦r的er基产本生回的路G或中惟基
本圈, r=1, 2, 本回路系统.
…,
mn+1.
称{C1,
C2,
…,
i 1
26
定理: 设T为带权w1≤w2≤…≤wt的最优树,则 (1)带权w1,w2的树叶vw1,vw2是兄弟; (2)以树叶vw1,vw2为儿子的分枝点的通路最长 证明:略, 即权越小的叶要挂在路最长的分支点,权越大挂的 叶要挂在路短的分支点上,显然最优树一定是完全 二叉树。
否则删去圈上的任一条边, 这不破坏连通性, 重复进行直到 无圈为止,剩下的图是一棵生成树. 推论1:设n阶无向连通图有m条边, 则mn1. 理解:生成树有n-1条边;少于n-1条边就不连通; 推论2:设n阶无向连通图有m条边, 则它的生成树的余树 有mn+1条边.
推论3 设 T为G的生成树 T 的余树,C 为G 中任意一 个圈,则C与 T 一定有公共边.
求基本割集的算法: 设e为生成树T的树枝, Te由两棵子树T1与T2组成, 令 Se={e | eE(G)且e的两个端点分别属于T1与T2} 则Se为 e对应的基本割集.
12
实例
例 图中红边为一棵生成树, 求对应它的基本回路系统 与基本割集系统
解 弦e,f,g对应的基本回路分别为 Ce=e b c, Cf=f a b c, Cg=g a b c d, C基={Ce, Cf, Cg}. 树枝a,b,c,d对应的基本割集分别为 Sa={a, f, g}, Sb={b, e, f, g}, Sc={c, e, f g}, Sd={d, g}, S基={Sa, Sb, Sc, Sd}.
31
最佳前缀码
例 在通信中,设八进制数字出现的频率如下: 0:25% 1:20% 2:15% 3:10% 4:10% 5:10% 6:5% 7:5%
采用2元前缀码, 求传输数字最少的2元前缀码 (称作最佳前 缀码), 并求传输10n(n2)个按上述比例出现的八进制数字需 要多少个二进制数字?若用等长的 (长为3) 的码字传输需要 多少个二进制数字? 解 用Huffman算法求以频率(乘以100)为权的最优2元树. 这
定理:若二元完全树有n个分支点,且各分支点的层数之和 为,各树叶的层数之和为E,则E=+2n。 完全二元树分支点比叶少一个, 在完全正则二元树中,树高是K,则叶是2K个,分支点是2K1个,边是2×2k-1条边。
24
带权二元树
给一组数,不妨假设w1≤w2≤…≤wt。若 有一棵二元树,共有t片叶,分别带
27
如何依据给定的权求最优二元树?
Huffman算法: 给定实数w1, w2, …, wt,求以上 述实数为权的最优二元树 。
哈夫曼算法:给定树求最优树
1、给初始权集S={ w1, w2,..., wt };t个叶子vi带权 wi , i 1, 2,..., t
2、在S中找出两个权最小的数不妨记作w1,w2,用父结点v将两 个带权的儿子v1,v2连结起来,形成一个新的子树并把该子树 看作一个结点v,带权w1+w2。
权 w1 ,w2 ,...wt ,称该二元树为带权二
叉树。 树的权:w(i)是叶子Vi的权,L(Vi)
是Vi的层数, t w(T) wiL(wi ) i1
25
最优2元树
在所有有t片树叶, 带权 w1, w2, …, wt 的 2元树中,
权最小的2元树称为最优2元树.
t
W (t) wil(vi )
17
有向树与根树的定义
有向树: 基图为无向树的有向图
根树: 有一个顶点入度为0, 其余的入度均为1的 非平凡的有向树
树根: 有向树中入度为0的顶点
树叶: 有向树中入度为1, 出度为0的顶点
内点: --对应分支点 有向树中入度为1, 出度大于0的顶点
18
分支点: 树根与内点的总称
则称这棵树为G的生成树; 设G的一棵生成树为T,则T中的边称为T的树枝,在G中而 不在T中的边称为T的弦,
所有弦的集合称为生成树T的余树 T 注意:T余树不一定连通, 也不一定不含回路.
右图黑边构成生成树 红边构成余树
8
生成树的存在性
定理:任何无向连通图至少存在一颗生成树. 证 用破圈法. 若图中无圈, 则图本身就是自己的生成树.