离散数学-耿素云ppt(第5版)7.1-2

上传人:kms****20 文档编号:50927168 上传时间:2018-08-11 格式:PPT 页数:37 大小:1.28MB
返回 下载 相关 举报
离散数学-耿素云ppt(第5版)7.1-2_第1页
第1页 / 共37页
离散数学-耿素云ppt(第5版)7.1-2_第2页
第2页 / 共37页
离散数学-耿素云ppt(第5版)7.1-2_第3页
第3页 / 共37页
离散数学-耿素云ppt(第5版)7.1-2_第4页
第4页 / 共37页
离散数学-耿素云ppt(第5版)7.1-2_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《离散数学-耿素云ppt(第5版)7.1-2》由会员分享,可在线阅读,更多相关《离散数学-耿素云ppt(第5版)7.1-2(37页珍藏版)》请在金锄头文库上搜索。

1、1第7章 树 n7.1 无向树及生成树n7.2 根树及其应用 27.1 无向树及生成树 无向树与森林 生成树与余树 基本回路与基本回路系统 基本割集与基本割集系统 最小生成树与避圈法 3无向树无向树: 无回路的连通无向图 平凡树: 平凡图 森林: 每个连通分支都是树的非连通的无向图 树叶: 树中度数为1的顶点 分支点: 树中度数2的顶点右图为一棵12阶树. 注:本章中所讨论的回路均指简单回路或初级回路 树的应用英国数学家凯凯莱(Arthur Cayley)于19世纪纪中叶研究 饱饱和碳氢氢化合物CnH2n+2的同分异构体时时提出树树的 概 念. 当n=1,2,3时时, 都只有一棵非同构的树树;

2、 当n=4时时, 有2棵不同构的树树. 4甲烷烷乙烷烷丙烷烷丁烷烷异丁烷烷5无向树的性质定理 设G=是n阶m条边的无向图, 则下面各命题是等价的: (1) G是树树(连连通无回路); (2) G中任意两个顶顶点之间间存在惟一的路径; (3) G中无回路且m=n1; (4) G是连连通的且m=n1; (5) G是连连通的且G中任何边边均为桥为桥 ; (6) G中没有回路, 但在任何两个不同的顶顶点之间间加 一条新边后所得图中有惟一的一个含新边的圈. 6无向树的性质(续)定理 设T 是 n 阶非平凡的无向树,则T中至少有两 片树叶. 证 设T有x片树叶, 由握手定理及前面的定理,2(n-1)x+2

3、(n-x) 解得 x2.7例题例1 已知无向树T中, 有1个3度顶点, 2个2度顶点, 其余顶点全 是树叶. 试求树叶数, 并画出满足要求的非同构的无向树. 解 用树的性质m=n1和握手定理. 设有x片树叶,于是 n=1+2+x=3+x,2m=2(2+x)=13+22+x 解得x=3,故T有3片树叶.T的度数列为1, 1, 1, 2, 2, 3有2棵非同构的无向树.8例题例2 已知无向树T有5片树叶, 2度与3度顶点各1个, 其余顶点 的度数均为4. 求T的阶数n, 并画出满足要求的所有非同构的 无向树. 解 设T的阶数为n, 则边数为n1, 4度顶点的个数为n7. 由握手定理得2m=2(n1

4、)=51+21+31+4(n7) 解得n=8, 4度顶点为1个. T的度数列为1,1,1,1,1,2,3,4有3棵非同构的无向树 9生成树 设G为无向连通图 G的生成树: G的生成子图并且是树 生成树T的树枝: G在T中的边 生成树T的弦: G不在T中的边 生成树T的余树 : 所有弦的集合的导出子图 注意: 不一定连通, 也不一定不含回路. 黑边构成生成树 红边构成余树10生成树的存在性 定理 任何无向连通图都有生成树. 证 用破圈法. 若图中无圈, 则图本身就是自己的生成树. 否则删去圈上的任一条边, 这不破坏连通性, 重复进行直到无圈为止,剩下的图是一棵生成树.推论 设n阶无向连通图有m条

5、边, 则mn1. 11基本回路与基本回路系统 定义设设T是连连通图图G的一棵生成树树, 对对每一条弦e, 存 在惟一的由弦e和T的树树枝构成的初级级回路Ce, 称 Ce为对应为对应 于弦e的基本回路. 称所有基本回路的集 合为对应为对应 生成树树T的基本回路系统. 求基本回路的算法: 设弦e=(u,v), 先求T中u到v的路 径uv, 再加上弦e. 例如 Ce=e b c, Cf=f a b c, Cg=g a b c d,C基=Ce, Cf, Cg. 12基本割集与基本割集系统 定义设设T是连连通图图G的一棵生成树树, 对对T的每一条树树 枝a, 存在惟一的由树树枝a, 其余的边边都是弦的割

6、集 Sa , 称Sa为对应树为对应树 枝a的基本割集,称所有基本割 集的集合为对应为对应 生成树树T的基本割集系统.求基本割集的算法: 设a为生成树T的树枝, Ta由两 棵子树T1与T2组成, 则Sa=e | eE(G)且e的两个端点分别属于T1与T2 . 例如 Sa=a, f, g, Sb=b, e, f, g,Sc=c, e, f g, Sd=d, g,S基=Sa, Sb, Sc, Sd.回路合并合并回路C1和C2(C1C2): C1C2是C1和C2上的边边的 对对称差构成的(一条或几条)回路.13基本回路的性质连连通图图中的任一条回路都可以表成对应对应 它所含弦的 基本回路的合并.例如,

7、 abcf=Cf aef=CeCf aedg=CeCg bcdgfe=CeCfCg 14基本割集的性质连连通图图中的任一割集都可以表成对应对应 它所含树树枝的 基本割集的对对称差.例如 g,d=Sd a,b,e=SaSb a,e,c=SaSc b,e,f,d=SbSd 1516无向图与最小生成树 对无向图或有向图的每一条边e附加一个实数w(e), 称作边e 的权. 图连同附加在边上的权称作带权图, 记作G=. 设T是G的生成树, T所有边的权的和称作T的权, 记作W(T).最小生成树: 带权图权最小的生成树避圈法 (Kruskal) 求最小生成树树的算法 设设G是n阶阶无向连连通带权图带权图

8、G. (1) 按权权从小到大排列边边(环环除外), 设设W(e1)W(e2)W(em). (2) 令T, i1, k0. (3) 若ei与T中的边边不构成回路,则则令TTei, kk+1. (4) 若kn-1, 则则令ii+1, 转转(3).17例 求图的一棵最小生成树 w(T)=38实例187.2 根树及其应用 有向树与根树家族树与根子树有序树根树与有序树的分类r叉(有序)树, r叉正则(有序)树,r叉完全正则(有序) 树最优2叉树与Huffman算法 前缀码与最佳前缀码中序行遍法、前序行遍法、后序行遍法波兰符号法与逆波兰符号法 19有向树与根树 有向树: 基图为无向树的有向图 根树: 有一

9、个顶点入度为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; 4层有i.树高为421家族树定义 把根树看作一棵家族树: (1) 若顶点 a 邻接到顶点 b, 则称 b 是 a 的儿子, a

10、是 b 的父亲; (2) 若b和c为同一个顶点的儿子, 则称b和c是兄弟;(3) 若ab且a可达b, 则称a是b的祖先, b是a的后代.设v为根树的一个顶点且不是树根, 称v及其所有后 代的导出子图为以v为根的根子树. 22根树的分类有序树: 将根树同层上的顶点规定次序 r叉树:根树的每个分支点至多有r个儿子 r叉正则树: 根树的每个分支点恰有r个儿子 r叉完全正则树: 树叶层数相同的r元正则树 r叉有序树: 有序的r叉树 r叉正则有序树: 有序的r叉正则树 r叉完全正则有序树: 有序的r叉完全正则树23最优2叉树 定义 设2叉树T有t片树叶v1, v2, , vt, 树叶的权分别为w1, w

11、2, , wt, 称 为T的权, 其中l(vi)是vi的层数. 在所有权为w1, w2, , wt 的t片树叶 的2叉树中, 权最小的2叉树称为最优 2叉树.例如W(T1)=47W(T2)=54W(T3)=4224求最优优2叉树树的算法 Huffman算法:给定实数w1, w2, , wt, 作t片树叶, 分别以w1, w2, , wt为权. 在所有入度为0的顶点(不一定是树叶)中选出两个 权最小的顶点, 添加一个新分支点, 以这2个顶点为 儿子, 其权等于这2个儿子的权之和. 重复, 直到只有1个入度为0 的顶点为止. W(T)等于所有分支点的权之和25实例例 求权为 1, 3, 4, 5,

12、 6的最优树. 26实例例(续)W(T)=42, 前面的T3也是最优的. 27前缀码 设 =12n-1n是长度为n的符号串 的前缀: 12k , k=1,2,n-1,n 前缀码: 1, 2, , m, 其中1, 2, , m为非空字符串, 且任何两个互不为前缀 2元前缀码: 只有两个符号(如0与1)的前缀码如 0,10,110, 1111, 10,01,001,110是2元前缀码0,10,010, 1010 不是前缀码28前缀码(续)一棵2叉树产生一个二元前缀码: 对每个分支点, 若关联2条边, 则给左边标0, 右边标1; 若只关联1条边, 则可以给它标0(看作左边), 也可以 标1(看作右边

13、). 将从树根到每一片树叶的通路上标 的数字组成的字符串记在树叶处, 所得的字符串构成 一个前缀码.例如最佳前缀码设设要传输传输 的电电文中含有t个字符, 字符ai出现现的频频率 为为pi, 它的编码编码 的长长度为为li, 那么100个字符的电电文的编码编码 的期望长长度是100 . 称编码编码 期望长长度最小的2元前缀码为缀码为 最佳2元前缀码缀码 . 在用2叉树产树产 生2元前缀码时缀码时 , 每个二进进制串的长长度 等于它所在树树叶的深度, 因而权为权为 100p1, 100p2, , 100pt的最优优2叉树产树产 生的2元前缀码缀码 是最佳2元前缀缀 码码. 于是, 给给定字符出现

14、现的频频率, 可以用Huffman算 法产产生最佳2元前缀码缀码 .2930实例例 在通信中,设八进制数字出现的频率如下:0:25% 1:20% 2:15% 3:10%4:10% 5:10% 6:5% 7:5%采用2元前缀码, 求传输数字最少的2元前缀码 , 并求传输10n(n2)个按上述比例出现的八进制数字需要多少个二进制数字?若用等长的 (长为3) 的码字传输需要多少个二进制数字?解 用Huffman算法求以频率(乘以100)为权的最优2叉树. 这里 w1=5, w2=5, w3=10, w4=10, w5=10, w6=15, w7=20, w8=25. 31例(续)编码: 0-01 1

15、-112-0013-1004-1015-00016-000007-00001 传100个按比例出现的八进制数字所需二进制数字的个数 为 W(T)=285. 传10n(n2)个所用二进制数字的个数为2.8510n, 而用等长 码(长为3)需要用 310n个数字. 32行遍2叉有序树树行遍(周游)根树T : 对T 的每个顶点访问且仅访问一次. 行遍2叉有序树的方式: 中序行遍法: 左子树、根、右子树 前序行遍法: 根、左子树、右子树 后序行遍法: 左子树、右子树、根 当不是正则树时, 左子树或右子树可缺省例如, 中序行遍: b a (f d g) c e 前序行遍: a b (c (d f g) e) 后序行遍: b (f g d) e c) a33用2叉有序树树表示算式每一个分支点放一个运算符. 二元运算符所在的分 支点有2个儿子, 运算对对象是以这这2个儿子为为根的根 子树树表示的子表达式, 并规规定被减数和被除数放在 左子树树上; 一元运算符所在的分支点只有一个儿 子, 运算对对象是以这这个儿子为为根的根子树树表示的子 表达式.数字和变变量放在树树叶上.实

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号