第9章 树 [离散数学离散数学(第四版)清华出版社]

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
带权图的生成树中边权和最小的称为最小生成树. 带权图的生成树中边权和最小的称为最小生成树. 最小生成树 构造最小生成树的Kruskal算法: 算法: 构造最小生成树的 算法
– 输入:连通图G,每边带有非负数值的权. 输入:连通图 ,每边带有非负数值的权. – 输出:G的最小生成树 . 的最小生成树T. 输出: 的最小生成树 – 过程: 过程: ET=; for k:=1 to n-1 do { 取EG-ET中不会使ET{ek}含回路并且权尽量小的边ek; 不会使 含回路并且权尽量小的边 含回路并且权尽量小的边 ET:=ET{ek} };
3/19/2010 5:55 AM 第四部分:图论(授课教师:向胜军) 4
树中边和点的数量关系
是树, 设T是树,令n=|V|, m=|E|, 则m=n-1. 是树 .
– 证明: 证明: 进行归纳. 是平凡图, 对n进行归纳.当n=1, T是平凡图,结论显然成立. 进行归纳 是平凡图 结论显然成立. 假设当n≤ 时结论成立 时结论成立. 假设当 ≤k时结论成立. 中每条边都是割边, 若n=k+1.因为 中每条边都是割边,任取 ∈E, T-{e} .因为T中每条边都是割边 任取e∈ 连通分支,设其为T 并设它们边数分别是m 含两个连通分支,设其为 1, T2, 并设它们边数分别是 1, m2, 顶点数分别是 1, n2, 根据归纳假设:m1=n1-1, 顶点数分别是n 根据归纳假设: m2=n2-1, 注意:n1+n2=n, m1+m2=m-1, 注意: ∴m=m1+m2+1=(n1-1)+(n2-1)+1=n1+n2-1=n-1. .
3/19/2010 5:55 AM
第四部分:图论(授课教师:向胜军)
10
根树的图形表示 边上的方向用约定的位置关系表示
第0层 层 第1层 层 树高=3 树高 第2层 层 第3层 层 根 内点 叶 分支点
3/19/2010 5:55 AM
第四部分:图论(授课教师:向胜军)
11
根树与家族关系
用根树容易描述家族关系,反之, 用根树容易描述家族关系,反之,家族关系 术语被用于描述根树中顶点之间的关系. 术语被用于描述根树中顶点之间的关系.
第九章 树
§1 无向树及生成树 §2 根树及其应用
3/19/2010 5:55 AM
第四部分:图论(授课教师:向胜军)
1
树是一类结构较为简单的图, 树是一类结构较为简单的图,是用途 极为广泛的离散数学模型,特别是二叉树, 极为广泛的离散数学模型,特别是二叉树, 它在计算机科学中用得最多. 它在计算机科学中用得最多.因此在学习 时应很好地掌握好诸如树的充要条件,生 时应很好地掌握好诸如树的充要条件, 成树,最优生成树,根树,树的各种算法, 成树,最优生成树,根树,树的各种算法, 及二叉树的访问次序等内容. 及二叉树的访问次序等内容.
3/19/2010 5:55 AM 第四部分:图论(授课教师:向胜军) 17
Huffman算法的例子 算法的例子 开始序列: 例子 :开始序列:2,2,3,3,5
– 1步后:4,3,3,5 步后: 步后 – 2步后:4,6,5 步后: 步后 – 3步后:9,6 3步后: 步后
4 1 2 2 2 2 4 3 6 3 2 4 2 2 9 5 6 3 3 3 4 5 3 2 3 9 15 6
3/19/2010 5:55 AM 第四部分:图论(授课教师:向胜军) 7
构造生成树的例子
不同的方法得到不同的生成树( 不同的方法得到不同的生成树 总是删除m-(n-1)条边)
宽度优先
"避圈"
深度优先
3/19/2010 5:55 AM
第四部分:图论(授课教师:向胜军)
8
最小生成树算法(避圈法 最小生成树 Kruskal算法 避圈法 算法 避圈法)
即使不是正则二叉数, 即使不是正则二叉数,也可以 分左, 分左,右,必须注意顶点位置. 必须注意顶点位置.
左 子 树
3/19/2010 5:55 AM 第四部分:图论(授课教师:向胜军)
右 子 树
14
有序二叉树 任何有序树均可化为有序二叉树
3/19/2010 5:55 AM
第四部分:图论(授课教师:向胜军)
2 2 2 2 3 W(T)=38
3/19/2010 5:55 AM
3 5
3 3 5 W(T)=47 3 3
5 2 W(T)=36
2 2
5 3 3 2 W(T)=34
16
第四部分:图论(授课教师:向胜军)
求最优二叉树的算法
Huffman算法 算法
输入:实数序列w1,w2,…,wt, 且w1≤w2≤…≤wt. 输入:实数序列 ≤ 输出:具有t个树叶 其权序列为w 个树叶, 的最优二叉树. 输出:具有 个树叶,其权序列为 1,w2,…,wt的最优二叉树. 过程: 过程: 作t个叶顶点 1,v2,…vt,其相应的权分别是 1,w2,…,wt.加 个叶顶点v 其相应的权分别是w 个叶顶点 的左,右子树. 入分支点v 入分支点vt+1, 使v1,v2是vt+1的左 ,右子树.在上述权序列 中用w 代替w 两项. 中用 t+1= w1+w2代替 1,w2两项. 考虑"当前的"w序列 选择其中最小的两项,设其对应 考虑" 当前的" 序列, 选择其中最小的两项, 序列 的顶点是v 加分支点v 使以v 为根的子树为其左, 的顶点是 i,vj, 加分支点 t+k, 使以 i,vj为根的子树为其左, 右子树. 右子树. 重复第2步,直至加入t-1个点. 重复第 步 直至加入 个点. 个点 注意: 不唯一(如果 当前" 如果" 注意:Huffman算法得到的结果可能不唯一 如果"当前"权最 算法得到的结果 小顶点对不唯一). 小顶点对不唯一 . – – –
3/19/2010 5:55 AM 第四部分:图论(授课教师:向胜军) 9
1 4 6
2 5 7
3
8 9 10 11
W(T)=21
§2 根树及其应用
定义:底图为树的有向图称为有向树. 定义:底图为树的有向图称为有向树. 有向树 定义: 定义:若n(n≥2)阶有向树恰含一个入度 ≥ 阶有向树恰含一个入度 的顶点, 为0的顶点,其它顶点入度均为 ,则该 的顶点 其它顶点入度均为1, 有向树称为根树 根树. 有向树称为根树.
注意:完全正则2叉树共有 叉树共有(2 个顶点(k是树高 是树高) 注意:完全正则 叉树共有 k+1-1) 个顶点 是树高
3/19/2010 5:55 AM
Biblioteka Baidu
第四部分:图论(授课教师:向胜军)
13
二叉树的子树
定义: 是根树, 中任一顶点 中任一顶点v及其所有后 定义:设T是根树,T中任一顶点 及其所有后 是根树 代的导出子图显然也是根树(以 为根 称为T 为根), 代的导出子图显然也是根树 以v为根 ,称为 的子树. 的子树. 有序二叉树的子树分为左子树和右子树. 有序二叉树的子树分为左子树和右子树.
这里只需再证明(4)(1)
只需证明连通:对任意顶点对 相邻, 只需证明连通:对任意顶点对x,y, 若x,y相邻,边xy即 相邻 即 xy-通路;若x,y不相邻,则T+xy中含唯一的回路 显 通路; 不相邻, 中含唯一的回路C, 通路 不相邻 中含唯一的回路 然xy在C中,因此:C-xy是T中的 通路. 在 中 因此: 是 中的xy-通路. 中的 通路
第四部分:图论(授课教师:向胜军)
3
有关树的几个等价命题
下列六个命题等价: 下列六个命题等价: – (1) T是不含回路的简单连通图. 是不含回路的简单连通图. 是不含回路的简单连通图 – (2) T的每对顶点间具有唯一基本通路. 的每对顶点间具有唯一基本通路. 的每对顶点间具有唯一基本通路 – (3) T连通,但删除任意一条边则不再连通. 连通, 连通 但删除任意一条边则不再连通. – (4) T无回路,但在任意不相邻的顶点对之间加一条 无回路, 无回路 边则产生唯一的基本回路. 边则产生唯一的基本回路. – (5) T连通且 连通且n=m+1. 连通且 . – (6) T无回路且 无回路且n=m+1. 无回路且 .
3/19/2010 5:55 AM 第四部分:图论(授课教师:向胜军) 5
连通图边数的下限
连通图的必要条件是m 连通图的必要条件是 ≥n-1. .
(而对于树,m=n-1, 因此可以说"树是边最少的连通图") 而对于树, 因此可以说"树是边最少的连通图" 而对于树 – 证明: 证明: 进行归纳. 时结论显然成立. 是满足n=k+1的连 对n进行归纳.当n=2时结论显然成立.若G是满足 进行归纳 时结论显然成立 是满足 的连 通图,考虑G'=G-v(v∈V), 令|V'|=n', |E'|=m': 通图,考虑 ∈ (1)若G'仍连通 由归纳假设:m'≥n'-1, 注意:n'=n-1, m'≤m-1(G连 仍连通, 注意: 若 仍连通 由归纳假设: ≥ ≤ 连 被删除的点至少关联一条边) 所以: ≥ 通,被删除的点至少关联一条边 ,所以:m≥m'+1≥n'-1+1=n-1. ≥ . (2) 若G'不连通,设G'有ω(ω>1)个连通分支 1,G2,…,Gω,且Gi的 不连通, 个连通分支G 不连通 有 ω 个连通分支 边数和顶点数分别是m 由归纳假设, 边数和顶点数分别是 i和ni.由归纳假设,mi≥ni-1(i=1,2,…ω). ω. 注意: 注意:n=n1+n2+…+nω+1, m≥m1+m2+…+mω+ω(每个连通分支中 ≥ ω 每个连通分支中 至少有一个顶点在G中与要删除的 相邻, 的度数不小于 中与要删除的v相邻 的度数不小于ω 所以: 至少有一个顶点在 中与要删除的 相邻,即v的度数不小于ω), 所以: m≥ m1+m2+…+mω+ω≥ 1+n2+…+nω-ω1+ω=n-1. ω≥n ≥ ω≥ ω ω .
John's ancestors John's parent John's siblings John John's child John's descendants
3/19/2010 5:55 AM
第四部分:图论(授课教师:向胜军)
12
进一步限定根树性质的几个定语 有序:同层中每个顶点排定次序. 有序:同层中每个顶点排定次序. r叉(元):每个分支点至多有 个儿子. 叉 元 :每个分支点至多有r个儿子 个儿子. r叉(元)正则:每个分支点恰好有 个儿子 叉 元 正则 每个分支点恰好有r个儿子 正则: 完全:每个叶的层数恰等于树高. 完全:每个叶的层数恰等于树高.
3/19/2010 5:55 AM
第四部分:图论(授课教师:向胜军)
2
§1 无向树及生成树
定义: 定义 : 连通而不含回路的简单无向图称 无向树,简称树 为无向树,简称树(tree). .
– 下面列出所有不同构的 个顶点的树. 下面列出所有不同构的6个顶点的树. 个顶点的树
3/19/2010 5:55 AM
3/19/2010 5:55 AM 第四部分:图论(授课教师:向胜军) 6
生成树 定义: 若图G的生成子图是树 的生成子图是树, 定义 : 若图 的生成子图是树 , 则该子 图称为G的生成树. 图称为 的生成树. 无向图G连通 当且仅当 G有生成树. 无向图 连通 有生成树. 有生成树
– 证明 充分性显然): 证明(充分性显然 : 充分性显然 注意: 是有回路的连通图, 注意:若G是有回路的连通图,删除回路 是有回路的连通图 上的一条边, 中的回路一定减少 因此 中的回路一定减少. 因此, 上的一条边 , G中的回路一定减少 . (因此 , 用"避圈法"总可以构造连通图的生成 树.)
2 W(T)=34
3/19/2010 5:55 AM
第四部分:图论(授课教师:向胜军)
18
不等长编码
如何从信号流中识别字符
– 等长度编码 – 显式表示长度:专用位或特定结束信号 显式表示长度: – 匹配的唯一性
15
最优二叉树
是二叉树, 若 T是二叉树 , 且每个叶 1,v2,…,vt 带有数值权 是二叉树 且每个叶v w1,w2,…wt, 则 二 叉 树 T 的 权 W(T) 定 义 为 : 其中: 表示v ∑ti=1wil(vi), 其中:l(vi)表示 i的层数. 表示 的层数. 具有相同权序列的二叉树中权最小的一个称为 最优二叉树. 最优二叉树.
相关文档
最新文档