离散数学课件 第七章 树trees
离散数学——树
用Huffman算法产生最佳前缀码
例16.6 在通信中,八进制数字出现的频率如 下: 0:25% 1:20% 2:15% 3:10% 4:10% 5:10% 6: 5% 7: 5%
求传输它们的最佳前缀码? 求传输10n(n≥2)个按上述比例出现的八进
解答 以100乘各频率为权,并按小到大排列,得w1=5, w2=5, w3=10, w4=10, w5=10, w6=15, w7=20, w8=25。产生的最优树如下。
生成树的存在条件
定理16.3 无向图G具有生成树当且仅当G连通。 证明 必要性,显然。
充分性(破圈法)。 若G中无回路,G为自己的生成树。 若G中含圈,任取一圈,随意地删除圈上的一条边, 若再有圈再删除圈上的一条边,直到最后无圈为止。 易知所得图无圈(当然无回路)、连通且为G的生成子图, 所以为G的生成树。
• 二叉树的应用
根树的定义
定义16.6 T是n(n≥2)阶有向树, (1) T为根树— T中有一个顶点入度为0,其余顶
点的入度均为1 (2) 树根——入度为0的顶点 (3) 树叶——入度为1,出度为0的顶点 (4) 内点——入度为1,出度不为0的顶点 (5) 分支点——树根与内点的总称 (6) 顶点v的层数——从树根到v的通路长度 (7) 树高——T中层数最大顶点的层数
唯一性(反证法)。 若路径不是唯一的,设Г1与Г2都是u到v的路径, 易知必存在由Г1和Г2上的边构成的回路, 这与G中无回路矛盾。
(2)(3)
如果G中任意两个顶点之间存在唯一的路径,
则G中无回路且m=n-1。
首先证明 G中无回路。 若G中存在关联某顶点v的环, 则v到v存在长为0和1的两条路经 (注意初级回路是路径的特殊情况), 这与已知矛盾。 若G中存在长度大于或等于2的圈, 则圈上任何两个顶点之间都存在两条不同的路径, 这也与已知矛盾。
离散数学-图论-树
二叉树
• 定义:二元有序树称为二叉树.
– 每个顶点最多有两个子顶点,一般称为左子顶 点和右子顶点. – 类似地,称每个顶点的左子树和右子树. – 每个顶点的出度都是0或2,称为二叉正则树.
二叉树的性质
• 定理:设有二叉树T, (1)第i层最多有2i个顶点; (2)若T高度为h,则T最多有2h11个顶点,最 少有h个顶点; (3)树叶个数出度为2的顶点个数1.
1 2
Huffman树与最优编码
• 若以符号为树叶,符号概率为树叶的权,利 用通过Huffman算法得到的二叉树对符号 编码,则可以保证i pili最小. • 例:对1,1,2,3,5,6,7,8构造Huffman树.
7 3 2 1 1 5 6
8
编码:设 A, B, C, D 的频率(即权值)分别为 17%, 25%, 38%, 20%, 试设计哈夫曼编码(最佳前缀码/最优编码)。
最优编码
• 构成消息的各符号的使用频率是不一样 的,显然常用符号编码短一些,罕用符号编 码长一点,可以使传输的二进制位数最少. • 最优编码问题:给定符号集{a1,a2,...,am}, ai 的出现概率是pi,编码长度为li,要使i pili最 小.
例:如果需传送的电文为 ‘A B A C C D A’,它只用到四种字符, 用两位二进制编码便可分辨。假设 A, B, C, D 的编码分别为 00, 01,10,11,则上述电文便为 ‘00010010101100’(共 14 位), 译码员按两位进行分组译码,便可恢复原来的电文。 数据的最小冗余编码问题 在编码过程通常要考虑两个问题 译码的惟一性问题
5 1 5 6 6
U 1
1 5 6 1 5 5 4 6 5 4 5 5
2
离散数学 树
离散数学树
离散数学中的树(Tree)是一种常见的图论结构,它是一种无向、连通且没有简单回路的无向图,或者是一个有向连通图,其中每个节点都只有唯一一个父节点(除了根节点)。
树形结构中的每一个节点都可以视为一个子树的根节点,因为它下面连接了若干个子节点,这样就形成了一棵向下生长的树状结构。
树形结构还有一个重要的特点就是它具有很好的递归性质,因为每个节点下面都可以再建立一棵子树,这样就可以逐层递归地构建出整棵树。
在离散数学中,树被广泛应用于算法设计、数据结构以及对计算机网络和信息系统进行建模等领域。
树的深度和广度优先遍历、树的一些基本性质(如高度、度、叶子节点等)以及树的遍历应用在图的搜索算法、排序、哈夫曼编码、抽象语法树等算法中都有广泛的应用。
离散数学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无简单回
离散数学课件 第七章 树trees
第7章树trees分类§7.1 树定义1:T是集合A上一个二元关系,T称为树tree,如果存在v0∈A,任意v∈A,v≠v0,到v0都有唯一一条路径,(v0, v0) T. T叫做根树,记做(T,v0)。
A中元素称为T的顶点vertex,T中元素称为边,v0称为根root。
定理1. 设(T,v0)是树,则(a)T中没有回路。
(b)只有一个根v0。
(c)任意v∈A,v≠v0,v有入度1,v0入度是0。
证明:定义2层次levelv0的层次为0,v0的子女offspring层次为1,v0是子女的父母parent。
v i的层次为k,v i的子女offspring层次为k +1,v i是子女的父母parent,T的最大层次称为高度height。
无子女的顶点叫叶leaf。
v i的子女叫同胞sibling,同胞如有长幼,从左到右,老大,老二,老三等,组成线性序,T称为有序树,ordered tree定理2. 设(T,v0)是根树,则(a)T反自反。
(b)T反对称。
(c)(a,b)∈T,(b,c)∈T ⇒ (a,c)∉T。
定义3:n-树:每个顶点至多n个子女。
二叉树:2-树。
完全n-树:每个非叶顶点恰有n个子女。
定义4A rooted binary tree is a rooted tree in which every node has at most two children.A full binary tree (sometimes proper binary tree or 2-tree) is a tree in whichevery node other than the leaves has two children.A perfect binary tree is a full binary tree in which all leaves are at the same depth or same level.[1] (This is ambiguously also called a complete binary tree.)A complete binary tree is a binary tree in which every level, except possibly the last, is completely filled, and all nodes are as far left as possible.[2]An infinite complete binary tree is a tree with levels, where for each level d thenumber of existing nodes at level d is equal to 2d. The cardinal number of the set of all nodes is . The cardinal number of the setof all paths is .A balanced binary tree is a tree where the depth of all the sub-trees differs by at most 1.定理3. 设(T,v0)是根树,v∈T,则T(v)是T的子树,T(v)的根是v。
离散数学(7.7树与生成树)
图 7.5.3
•
考虑生成树T1, 可知e1, e2, e3, e4是T1的树枝, e5, e6, e7是T1的弦, 集 合{e5, e6, e7}是T1的补。 生成树有其 一定的实际意义。
•
【例7.5.3】某地要兴建5个工厂, 拟修
筑道路连接这5处。 经勘测其道路可依如 图7.5.3(a)图的无向边铺设。 为使这5处都 有道路相通, 问至少要铺几条路? • 解 这实际上是求 G 的生成树的边数 问题。 • 一般情况下, 设连通图G有n个结点,
图 7.5.5
•
【例7.5.6】图7.5.6所示的赋权图G表示 七个城市 a,b,c,d,e,f,g 及架起城市间直接 通讯线路的预测造价 。 试给出一个设计方 案使得各城市间能够通讯且总造价最小,并 计算出最小造价。
•
图7.5.6
• •
解 : 该问题相当于求图的最小生成树 问题,此图的最小生成树为图 7.5.6 中 的TG ,因此如图TG架线使各城市间能够 通讯,且总造价最小,最小造价为: • W(T)=1+3+4+8+9+23= 48
i 1 i 1
k
k
得出矛盾。所以T是连通且m=n-1的图。
• • • •
(3)证明由第(2)条可推出第(3)条。 首先证明T无圈。对n作归纳证明。 n=1时,m=n-1=0,显然无圈。 假设结点数为n-1时无圈,今考察结 点数是n的情况。此时至少有一个结点v其度 数deg(v)=1。我们删去v及其关联边得到新 图T′,根据归纳假设T′无圈,再加回v及其关联 边又得到图T,则T也无圈。 • 其次,若在连通图T中增加一条新边(vi, vj ), 则由于T中由vi到vj存在一条通路,故必有一 个圈通过vi, vj 。若这样的圈有两个,则去掉
离散数学-树
离散数学导论
. 树
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分为
离散数学第7章PPT课件
…………
初级通路 简单通路 复杂通路
第38页/共94页
例1、(2)
图(2)中过v2的回路 (从 v2 到 v2 )有:
1 v2e4v4e3v3e2v2
长度3
2 v2e5v5e6v4e3v3e2v2
长度4
3 v2e4v4e3v3e2v2e5v5e6v4e3v3e2v2 长度7
第34页/共94页
一、通路,回路。 2、简单通路,简单回路。 简单通路 (迹) 简单回路 (闭迹) 复杂通路 (回路)
第35页/共94页
一、通路,回路。 3、初级通路,初级回路。 初级通路 (路径) 初级回路 (圈)
初级通路 (回路) 简单通路 (回路),
但反之不真。
4、通路,回路的长度—— 中边的数目。
补图的概念, 5、图的同构的定义。
第4页/共94页
一、图的概念。 1、定义。
无序积 A & B (a,b) a A b B
无向图 G V , E
E V &V , E 中元素为无向边,简称边。
有向图 D V, E
E V V , E 中元素为有向边,简称边。
第5页/共94页
一、图的概念。 1、定义。
2、握手定理。
定理1: 设图 G V , E 为无向图或有向图,
V v1,v1,
则
,vn,E m ( m为边数),
n
d (vi ) 2m
i 1
第20页/共94页
n
2、握手定理 d (vi ) 2m i 1
推论:任何图中,度为奇数的顶点个数为偶数。
定理2: 设D V, E 为有向图,
第36页/共94页
07 树
离散数学结构
24
例2
b
a
a d b g c
f e
c e
f
d
左图a,c,d,g是简单道路 右图a,d,b,c,e是简单道路。 f,e,a,d,b,a,f是简单回路。 f,e,d,c,e,f不是简单回路。
韩祥兰 离散数学结构
25
无向树的性质
定理1. R是对称关系。则下列命题等价: a) R是无向树。 b) R连通connected,无环的acycle。 证明:…
韩祥兰
离散数学结构
35
求生成树(spanning tree)的Prim算法
1. 找一个结点v1, 并生成R的邻接矩阵MR, 使v1为矩阵的第一行。 2. 选择一个结点 v2 使( v1,v2)∈R ,将 V1 与v2合并,并画一条从v1到v2的边。 3. 重复2,直到MR中只有一个结点。
无向生成树的生成: 1. 受定理2启发… 2. 利用图的遍历 例4
韩祥兰
离散数学结构
30
连通图的生成树
含有所有顶点的极小连通图. 通过遍历可以得到一棵生成树。通常,由 深度优先搜索得到的生成树称为深度优先 生成树,简称为DFS生成树;由广度优先 搜索得到的生成树称为广度优先生成树, 简称为BFS生成树。
例1 p292
韩祥兰
离散数学结构
23
定义2 设R是一个对称关系,p: v1,v2,…,vn是R中的道路,如果p不存在任 何两条边对应于同一条无向边,则称p是 简单的。此外,如果v1等于vn(使得p是 一条回路),则称p是一条简单回路。
如果对称关系R不包含任何简单回路,则 称R是无环的。
离散数学_第7章 图论 -6-7树与根树
第9章 图论
③④ 只须证明G是连通的。若不然,设G有t(t≥2)个连通分支G1,
G2,…,Gt,Gi中均无回路,都是树。由①②③可知,mi=ni–1, i=1,…,t。于是m=m1+m2+…+mt =n1-1+n2-1+…+nt-1=n1+n2 +…+nt-t=n–t,由于t≥2,ቤተ መጻሕፍቲ ባይዱ与m=n–1矛盾。所以G是连通图。 ④⑤
树及其应用
• 7.6 无向树
– 7.6.1 无向树的定义及其性质 – 7.6.2 生成树与最小生成树
• 7.7 根树及其应用
– 7.7.1根树的基本概念与性质 – 7.7.2二叉树及其应用
• 最优二叉树与哈夫曼算法 • 前缀码及其应用
第9章 图论
第9章 图论
7.6 无向树
• 7.6.1 无向树的定义及其性质 • 7.6.2 生成树与最小生成树
只须证明G的每一条边均为桥。设e是G的任意边,删除e得子图 G1,G1中的边数m1=m-1,G1中的结点数n1=n,m1=m–1=n-1-1=n2=n1-2<n1-1,故G1不是连通图,所以e是桥。 ⑤⑥
由于G中每一条边均为桥,因而G中无回路。又因为G连通,所 以G是树。由①②知,uV,vV,u≠v,u与v之间存在一条惟 一的路。在u与v之间增加一条新边,就得到G的一条回路,显然这 条回路是唯一的。 ⑥①
(3) 1,1,1,1,3,3
(1)
(2)
(3)
(4) 1,1,1,2,2,3
(5) 1,1,2,2,2,2
(4a)
(4b)
(5)
注意: 1、不同度数列对应的无向树是非同构的; 2、相同度数列也可能对应不止一棵非同构树。如度数列(4)对应2棵非同构树
第9章 图论
离散数学-专题7:树解析
因为每局比赛将淘汰(r-1)位选手,比赛的结果共淘汰(r1)i位选手,最后剩下一个冠军,因此(m-1)i+1=t
35
最优二叉树
定义7.9
设2叉树T
t
有t片树叶v1,
v2,
…,
vt,权分别为w1,
24
基本割集的存在
定理7.5 设T是连通图G的一棵生成树,e为T的树枝,则G 中存在只含树枝e,其余边都是弦的割集,且不同的树枝对 应的割集也不同. 证 由定理7.1可知,e是T的桥,因而Te有两个连通分支T1 和T2,令
Se={e | eE(G)且 e 的两个端点分别属于V(T1)和V(T2)}, 由构造显然可知Se为G的割集,eSe且Se中除e外都是弦, 所以Se为所求. 显然不同的树枝对应的割集不同.
所求最小生成树如 图所示,W(T)=38.
30
7.3 根树及其应用
定义7.6 T是有向树(基图为无向树) (1) T 为根树——T 中一个顶点入度为0,其余的入度均为1. (2) 树根——入度为0的顶点 (3) 树叶——入度为1,出度为0的顶点 (4) 内点——入度为1,出度不为0的顶点 (5) 分支点——树根与内点的总称 (6) 顶点v的层数——从树根到v的通路长度 (7) 树高——T 中层数最大顶点的层数
3 1 11 235 19 317,955 27 751,065,460
4 2 12 551 20 823,065 28 2,023,443,032
5 3 13 1,301 21 2,144,505 29 5,469,566,585
6 6 14 3,159 22 5,623,756 30 14,830,871,802
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第7章树trees分类§7.1 树定义1:T是集合A上一个二元关系,T称为树tree,如果存在v0∈A,任意v∈A,v≠v0,到v0都有唯一一条路径,(v0, v0) T. T叫做根树,记做(T,v0)。
A中元素称为T的顶点vertex,T中元素称为边,v0称为根root。
定理1. 设(T,v0)是树,则(a)T中没有回路。
(b)只有一个根v0。
(c)任意v∈A,v≠v0,v有入度1,v0入度是0。
证明:定义2层次levelv0的层次为0,v0的子女offspring层次为1,v0是子女的父母parent。
v i的层次为k,v i的子女offspring层次为k +1,v i是子女的父母parent,T的最大层次称为高度height。
无子女的顶点叫叶leaf。
v i的子女叫同胞sibling,同胞如有长幼,从左到右,老大,老二,老三等,组成线性序,T称为有序树,ordered tree定理2. 设(T,v0)是根树,则(a)T反自反。
(b)T反对称。
(c)(a,b)∈T,(b,c)∈T ⇒ (a,c)∉T。
定义3:n-树:每个顶点至多n个子女。
二叉树:2-树。
完全n-树:每个非叶顶点恰有n个子女。
定义4A rooted binary tree is a rooted tree in which every node has at most two children.A full binary tree (sometimes proper binary tree or 2-tree) is a tree in whichevery node other than the leaves has two children.A perfect binary tree is a full binary tree in which all leaves are at the same depth or same level.[1] (This is ambiguously also called a complete binary tree.)A complete binary tree is a binary tree in which every level, except possibly the last, is completely filled, and all nodes are as far left as possible.[2]An infinite complete binary tree is a tree with levels, where for each level d thenumber of existing nodes at level d is equal to 2d. The cardinal number of the set of all nodes is . The cardinal number of the setof all paths is .A balanced binary tree is a tree where the depth of all the sub-trees differs by at most 1.定理3. 设(T,v0)是根树,v∈T,则T(v)是T的子树,T(v)的根是v。
Homework P248-24918,19,20,21,26,28§7.2标识树labeled trees中缀表达式central operator expression(3-2×x)+((x-2))+(3+x))定位树positional tree定义Positional n-tree is a n-tree whose vertex potentially has exactly n offspring ordered by1,2,…,n, but some of the offsprings may be missing.定位3-树每个顶点的子女都有一定位置。
定位2-树左右子树普通二叉树。
问题7.2.11)n个节点的定位二叉树有多少个?2)如何枚举?定位二叉树的计算机表示Computer Representation of Binary Positional Trees234567891011121314Homework PP253-25410,11,12,16,18,§7.3 树的遍历tree searching(自学)二叉树的遍历中序遍历的递归算法定义(1)遍历左子树;(2)访问根结点;(3)遍历右子树。
先序遍历的递归算法定义(1) 访问根结点;(2) 遍历左子树;(3) 遍历右子树。
后序遍历得递归算法定义(1)遍历左子树;(2)遍历右子树;(3)访问根结点树的搜索深度优先搜索广度优先搜索启发式搜索博弈树搜索§7.4无向树undirected trees无向图连通不含回路的图叫无向树例无向树:有向树的对称闭包。
bfgdcea定义:有向树的对称闭包。
定理1. R是对称关系。
则下列命题等价the following statement are equivalent:(TFAE)a) R是无向树。
b) R连通connected,无回路acycle。
证明:a) b)R显然连通若R有回路b)⇒a)若R连通无回路,我们可以在R上构造一棵树。
定理2. R是对称关系。
TFAER是无向树。
R无回路,每增加一条边,都产生一个新的回路。
证明:⇒ R连通,所以没加一边都有新的回路⇐若R不连通则有两个以上连通分支,所以可以加一边不产生回路R连通,去掉任意一条边都不连通。
证明:⇒若去掉一边还连通,则原图一定有回路。
⇐若原图有回路,则可以去掉一边后仍连通。
R无回路,且有n-1条边⇒对定点做归纳即可得边数为n-1⇐若原图不连通,则有k个连通分支,每支都是树,总边数为n-k。
R连通,且有n-1条边⇒⇐若原图有回路,则删掉k条边后为树,则总边数为n-1+k连通图的生成树spanning tree:定义含有所有顶点的极小连通图.存在性n个顶点连通图至少有n-1条边。
m条边的连通图去掉m-n+1条边可以得到生成树。
从连通图中如有回路,去掉回路中的一条边,继续直至没有回路,就得到生成树 唯一性最小生成树:权重最小的生成树。
带权的边:带边长的边。
带权的图:每边都带权。
Prim 算法:设 G=<V ,E>,1. U={v 0}, W=V-U, T={ }.2.11(,)arg m in{(,):,}u v w u v u U v W =∈∈U=U ∪{v 1}, W=W-{v 1}, T=T ∪{(u 1,v 1)} 3. 重复2,直至U=V . 例ABC DEF 6515562463BACDE235623931321115Kruskal 克鲁斯卡尔算法 G=(V ,E) 连通图令 T=(V ,{ }) 是G 的所有顶点而无边的非连通图。
1. 选择E 中权值最小的边,若该边连接T的两个连通分量,将它加入T,这时T的连通分量减少1;2否则选下一条权值最小的边。
3 重复1 n-1次直到T连通。
T 就是最小生成树其他相关内容介绍最快的算法The fastest minimum spanning tree algorithm to date was developed by Bernard Chazelle, which is based on the soft heap, an approximate priority queue. [1][2] Its running time is O(mα(m,n)), where m is the number of edges, n is the number of vertices and α is the classical functional inverse of the Ackermann function. The function α grows extremely slowly, so that for all practical purposes it may be considered a constant no greater than 4; thus Chazelle's algorithm takes very close to linear time.Degree-constrained spanning treeInput: n-node undirected graph G(V,E); positive integer k≤ n.Question: Does G have a spanning tree in which no node has degree greater than k?Degree-constrained spanning tree problem is NPCDirected minimum spanning treeEdmonds's algorithm O(EV) 1986, Gabow, Galil, Spencer, and Tarjan O (E + V log V ). 求从点1出发的最小树形图1) 对除1以外的每个点,选一条指向它的最小权的边。
2) 将所得到的图为G ,其对应的无向图为H 3) 若H 连通,则已经找到。
4)否则H的每个连通分支,要么是从点1出发的一个树,要么去一条边后是树(假设只有一个C)5)原图的最小树形图必然是连通分支C取一条从外部指向内部圈的边,并去掉圈内的指向该点的边。
如果不知道从那个顶点开始,则可以添加定点0,和n条权值为M的边。
HomeworkP270-271 14,18P275-276 4,8。