收藏 分享(赏)

离散数学第7章.ppt

上传人:11xg27ws 文档编号:6901207 上传时间:2019-04-26 格式:PPT 页数:33 大小:1.09MB
下载 相关 举报
离散数学第7章.ppt_第1页
第1页 / 共33页
离散数学第7章.ppt_第2页
第2页 / 共33页
离散数学第7章.ppt_第3页
第3页 / 共33页
离散数学第7章.ppt_第4页
第4页 / 共33页
离散数学第7章.ppt_第5页
第5页 / 共33页
点击查看更多>>
资源描述

1、1,第7章 树及其应用,2,第7章 树及其应用,7.1 无向树 7.2 根树及其应用,3,7.1 无向树,7.1.1 无向树的定义及其性质 7.1.2 生成树与基本回路和基本割集 7.1.3 最小生成树,4,无向树的定义,无向树: 连通无回路的无向图 平凡树: 平凡图 森林: 每个连通分支都是树的非连通的无向图 树叶: 树中度数为1的顶点 分支点: 树中度数2的顶点,5,无向树的性质,定理7.1 设G=是n阶m条边的无向图, 下面各命题是 等价的: (1) G是树(连通无回路); (2) G中任意两个顶点之间存在惟一的路径; (3) G是连通的且m=n1; (4) G中无回路且m=n1; (5

2、) G中无回路, 但在任何两个不相邻的顶点之间加一条边所得图中有惟一的一条初级回路. (6) G是连通的且G中任意一条边均为桥.,6,定理7.1的证明,(1)(2) 由连通性, 任意2个顶点之间有一条路径. 又, 假设 某2个顶点之间有2条路径, 则这2条路径可组合成一条回 路, 与树的定义矛盾.(2)(3) 显然连通, 要证m=n1. 对n作归纳证明. 当n=1时, 显然m=0, 结论成立. 假设当nk(k1)时结论成立, 考虑n=k+1. 任取一条边e= (u,v), 它是u,v之间惟一的通路, 删去e, G被分成2个连通分 支, 设它们分别有n1, n2个顶点和m1, m2条边, n1k

3、, n2k. 由归纳假设, m1=n1-1, m2=n2-1, 得m= m1+m2+1= n-1.,7,定理7.1的证明(续),(3)(4) 假设有回路, 任取一个回路, 删去回路中的一条边, 所得图仍是连通的. 重复这个做法, 直到没有回路为止, 得 到一棵树, 它有n个顶点m-r条边, r0. 由(1)(2)(3), 得 m-r =n-1, 矛盾.(4)(1) 只需证G连通. 假设G不连通, 有p(p1)个连通分支. 设第k个连通分支有nk个顶点和mk条边, 由(1)(2)(3), mk= nk-1. 得到m= n-p, 矛盾.,8,定理7.1的证明(续),(1)(5) 由(1)(2),

4、任意2个不相邻的顶点之间有一条惟 一的路径, 故在这2个顶点之间添加一条新边, 必得到一条 惟一的初级回路.(5)(6) 首先, 任意2个不相邻的顶点之间都有一条通路, 否则在它们之间添加一条新边不可能构成回路, 故G连通. 其次, 若删去一条边G仍是连通的, 这条边必在一条回路上, 与G中无回路矛盾.(6)(1) G中无回路, 否则删去回路上任意条边, G仍连通.,9,无向树的性质(续),定理7.2 非平凡的无向树至少有两片树叶 证 设有n(n1)个顶点, x片树叶, 由握手定理和定理7.1, 有解得 x2.,10,实例,例1 已知无向树T中, 有1个3度顶点, 2个2度顶点, 其余顶 点全

5、是树叶. 试求树叶数, 并画出满足要求的非同构的无 向树.,解 设有x片树叶,2(2+x)=13+22+x,解得x=3,故T有3片树叶.,T的度数列为1, 1, 1, 2, 2, 3,11,实例,例7.3 画出所有6阶非同构的无向树,解 5条边, 总度数等于10,可能的度数列: (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,(1),(2),(3),(4a),(4b),(5),12,生成树,定义7.2 设G是无向连通图, 若G的生成子图T是一棵树, 则 称T是G的生成树. G在T中的

6、边称作T的树枝,不在T中的边 称作T的弦. T的所有弦的集合的导出子图称作T的余树,例如 图中黑边构成生成树 红边构成余树,注意: 余树一般不是树,13,生成树的存在性,定理7.3 任何无向连通图都有生成树. 证 用破圈法. 若图中无圈, 则图本身就是自己的生成树. 否则删去圈上的任一条边, 不破坏连通性, 重复进行直到 无圈为止, 得到图的一棵生成树.推论1 设n阶无向连通图有m条边, 则mn1. 推论2 设n阶无向连通图有m条边, 则它的生成树的余树 有mn+1条边.,14,基本回路与基本回路系统,定义7.3 设G是n阶m条边的无向连通图, T是G的一棵生成 树, e1, e2, , em

7、n+1为T的弦. G中仅含T的一条弦er的圈Cr 称作对应弦er的基本回路. 称C1,C2, , Cmn+1为对应T的 基本回路系统,例3 图中红边为一棵生成树, 对应它的基本回路系统为,bce, fae, gaed,15,基本割集与基本割集系统,定义7.4 设T是n阶连通图G的一棵生成树, e1, e2, , en1 为T的树枝,Si是G的只含树枝ei, 其他边都是弦的割集, 称Si为对应树枝ei的基本割集. 称S1, S2, , Sn1为对应T 的基本割集系统,例4 图中红边为一棵生成树, 对应它的基本割集系统为,a,f,g, ,e,b,f,g,c,b,d,g,16,最小生成树,图G的每一

8、条边e附加一个实数w(e), 称作边e的权. 图G连 同附加在边上的权称作带权图, 记作G=. 设H是G 的子图, H所有边的权的和称作H的权, 记作W(H).最小生成树: 带权图权最小的生成树避圈法 (Kruskal) (1) 将所有非环边按权从小到大排列, 设为e1, e2, , em (2) 令T = (3) For k=1 to m Do若ek与T 中的边不构成回路, 则将ek加入T 中,17,实例,例5 求图的一棵最小生成树,W(T)=38,18,7.2 根树及其应用,7.2.1 根树及其分类 7.2.2 最优树与哈夫曼算法 7.2.3 最佳前缀码 7.2.4 根树的周游及其应用 中

9、序行遍法、前序行遍法和后序行遍法 波兰符号法与逆波兰符号法,19,根树的定义,有向树: 略去方向后为无向树的有向图 根树: 有一个顶点入度为0, 其余的入度均为1的非平凡的 有向树 树根: 有向树中入度为0的顶点 树叶: 有向树中入度为1, 出度为0的顶点 内点: 有向树中入度为1, 出度大于0的顶点 分支点: 树根与内点的总称 顶点v的层数: 从树根到v的通路长度 树高: 有向树中顶点的最大层数,20,实例,根树的画法:树根放最上方,省去所有有向边上的箭头 右图中a是树根b,e,f,h,i是树叶c,d,g是内点a,c,d,g是分支点a为0层;1层有b,c; 2层有d,e,f;3层有g,h;

10、4层有i.树高为4,21,家族树,把根树看作一棵家族树: 若顶点a邻接到顶点b, 则称b是a的儿子, a是b的父亲 若b和c为同一个顶点的儿子, 则称b和c是兄弟 若ab且a可达b, 则称a是b的祖先, b是a的后代设v为根树的一个顶点且不是树根, 称v及其所有后代的导 出子图为以v为根的根子树将根树每一层上的顶点规定次序后称作有序树,22,根树的分类,r元树:根树的每个分支点至多有r个儿子 r元正则树: 根树的每个分支点恰有r个儿子 r元完全正则树: 所有树叶层数相同的r元正则树 r元有序树: 有序的r元树 r元正则有序树: 有序的r元正则树 r元完全正则有序树: 有序的r元完全正则树,23

11、,最优2元树,定义7.10 设2元树T有t片树叶v1, v2, , vt, 树叶的权分别为 w1, w2, , wt, 称 为T的权, 记作W(T), 其中 l(vi)是vi的层数. 在所有有t片树叶, 带权w1, w2, , wt 的 2元 树中, 权最小的2元树称为最优2元树,例如,W(T1)=47,W(T2)=54,W(T3)=43,24,求最优2元树的算法,哈夫曼(Huffman)算法 给定实数w1, w2, , wt 作t片树叶, 分别以w1, w2, , wt为权 在所有入度为0的顶点(不一定是树叶)中选出两个权最小的顶点, 添加一个新分支点, 以这2个顶点为儿子, 其权等于这2个

12、儿子的权之和 重复, 直到只有1个入度为0 的顶点为止 W(T)等于所有分支点的权之和,25,实例,例7.9 求以1,3,4,5,6为权的最优2元树, 并计算它的权 解,W(T)=4+8+11+19=42,26,最佳前缀码,定义7.11 设=12n-1n是长度为n的符号串, 12k 称作的长度为k的前缀, k=1,2,n-1. 若非空字符串1, 2, , m中任何两个互不为前缀, 则称 1, 2, , m为前缀码 只出现两个符号(如0与1)的前缀码称作2元前缀码例如 0,10,110, 1111, 10,01,001,110是2元前缀码0,10,010, 1010 不是前缀码,27,用2元树产

13、生2元前缀码的方法,对每个分支点, 若关联2条边, 则给左边标0, 右边标1; 若只 关联1条边, 则可以给它标0(看作左边), 也可以标1(看作右 边). 将从树根到每一片树叶的通路上标的数字组成的字 符串记在树叶处, 所得的字符串构成一个前缀码.,例如,前缀码 00, 11, 011, 0100,28,实例,例2 在通信中,设八进制数字出现的频率(%)如下:0: 25, 1: 20, 2: 15, 3: 10, 4: 10, 5: 10, 6: 5, 7: 5 采用2元前缀码, 求传输数字最少的2元前缀码 (称作最佳 前缀码), 并求传输100个按上述比例出现的八进制数字需 要多少个二进制

14、数字?若用等长的 (长为3) 的码字传输需 要多少个二进制数字? 解 用Huffman算法求以频率(乘以100)为权的最优2元树. 这里w1=5,w2=5,w3=10,w4=10,w5=10,w6=15,w7=20,w8=25.,29,实例(续),编码: 0-01 1-11 2-001 3-100 4-101 5-0001 6-00000 7-00001,传100个按比例出现的八进制数字需W(T)=285个二进制数 字, 用等长码(长为3)需要用 300个数字.,30,根树的周游及其应用,对一棵根树的每个顶点访问一次且仅访问一次称作对根 树的行遍或周游 行遍2元有序正则树的方式: 中序行遍法:

15、 左子树、树根、右子树 前序行遍法:树根、左子树、右子树 后序行遍法: 左子树、右子树、树根,31,实例,例3,中序行遍: 前序行遍: 后序行遍:,b a (f d g) c e),a b (c (d f g) e),b (f g d) e c) a,带下划线的是(子)树根,一对括号内是一棵子树,32,波兰符号法与逆波兰符号法,用2元有序正则树表示算术运算算式如下: 以中序行遍方 式将运算符和数标记在顶点上, 即将运算符放在分支点上, 数放在树叶上, 每个运算符对它所在分支点的2棵子树进 行运算, 并规定左子树是被除数或被减数.,例4 右图表示算式 (b+(c+d)a)(ef)(g+h)(ij),33,波兰符号法与逆波兰符号法(续),波兰符号法(前缀符号法): 按前序行遍法访问, 不加括号. 从右到左进行, 每个运算符对其后面紧邻两个数进行运算. 逆波兰符号法(后缀符号法): 按后序行遍法访问, 不加括号. 从左到右进行, 每个运算符对前面紧邻两数运算.,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 中等教育 > 高中教育

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报