第一课图论第06讲
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例2.4:表达式v1×v2/v3+v4(v5-v6/v7)可以形象 的表示为如下图:
+
÷
×
×
v3
v4
-
v1
v2
v5
÷
v6
v7
先序、中序、后序遍历得到的序列不一样。
前缀表达式(波兰表达式): 先序遍历表达式树所得;
中缀表达式:中序遍历表达式树所得; 后缀表达式:后序遍历表达式树所得。
后缀表达式(逆波兰表达式)的特点: (1)运算符与中缀表达式的运算符次序相同; (2)没有括号。
例2.1:判决树
设有4个银币,已知其中3个一定是真的,真 假的区别在于银币的重量,现用一天平设法 找出假币。
解:用a、b、c、d分别表示银币,a:b表示在天 平上作比较。 a:b
a:c
< =
a轻 b重
<
=
>
a:c
<
>
c重
=
a:d c轻
<
=>
a:c
=>
b轻 a重
d重 全真 d轻
容易看出,上例中方法并不唯一。
几乎所有应用图论的领域都要在相当大 的程序上依靠树来解决某些重要问题。树, 尤其是生成树可以说是图的骨骼,从来是被 重视的一个问题 。
精品课件!
精品课件!
2
2
1
-1 +1 +1 +1 +1 +1 +1 +1
3
2 21
2
12
1
-1 -1 21
不难看出,n=1或n=2时,先取者为胜, n=3时,先取者为败。
如果n=3k(k正整数),假定先取者拿走a 根(a=1或2),则后者只要取走b 根,(满 足a+b=3),使余下火柴为3(k-1)根,那么先 取者必败。
分枝(条件语句)离根越近,那么所需执行 的判断语句就越少,这样便可提高程序的执 行效率;
文件的压缩:根据文件中字符出现的频率,
建成一棵Huffman树,出现次数越多的字符 的Huffman编码越短,这样可以达到文件的 压缩。
关于给定一组代码及权值,如何构造最 佳的二元树,在《数据结构》课程会进一步 介绍。
vi的码长。若vi(i=1,2,…,n)代表的事物出现的
概率为pi,n pi =1,使得 i 1
n
m(T)= pili=min i 1
有序二元树T叫做带权p1,p2,…,pn的Huffman
树,也叫做最优二元树(最优二叉树)。
Huffman树的前缀码称为Huffman编码。
v0
0
1
0
0000 0.05
§2-1 判定树 §2-2 搜索树 §2-3 有序二元树 §2-4 Huffman树 §3 最小生成树
§2 几类常用树
§2-1 判定树(decision tree)
判定树是图论中最常见的模型之一,判 定树把做出判决的逻辑关系用树的形式表现 出来,使得条理清晰,一目了然。
往往最后的结果都集中在叶子顶点上。
a:c <
a:b <
<
a:b =
=
=<
a,b:c,d
=
a轻 c重
d重 b轻 全真
>
a:c
<
>
= d:c
<
>
=
d轻 b重
d:c
=>
a重 c轻
课堂练习题
1、已知有12个金币,其中有一个是假的,已 知假币比金币重,现在要求用一个天平,只 称3次,把假币找出来。
课后思考题
1、已知有12个金币,其中有一个是假的,且 不知道假币和金币的重量关系,现在要求用 一个天平,只称3次,把假币找出来。
学生?
否
是
{3,7,12,13}
{4,5,6,10,14,15}
信誉?
优
良
11 青 中 是 优
买
12 中 中 否 优
买
{1,2,8} {9,11}
{6,14,15} {4,5,10}
13 中 高 是 良
买
14 老 中 否 优 15 老 中 否 优
不买 不买
他/她会买计算机吗?
新顾客信息:年龄青,不是学生,收入低,信誉优。
0
1
0 1
10
1
001 010 011
0001
0
1
11
0
1
100 101
取定一个有26个叶子的有序二元树,把 它标出前缀码。再把每个叶子分别写上26字 母,则可以用前缀码表示字母。
例如,刚才的有序二元树的叶子写上字 母如下:
v0
0
1
0
1
0
1
11
0
10
1
0
1
z
001 010 011 100
101
0
§1-1 树的概念
叶子
在图论中:
1、连通的无环图称为树。
2、除根之外,
根
度=1的顶点称为叶子,
度>1的顶点称为分支点
或者内点。
分支点
3、多个树称为森林; 4、孤立顶点叫做平凡树 。
1
9
15
2
3
4
10
11
平凡树
5
6
7
8 12
13
14
5、如果一棵树T是图G的子图,则树T称为图
G的生成树或支撑树;
在编译系统里计算机用的是后缀表达式。
§2-2 搜索树
例2.4:有n根火柴,甲乙两个依次可以从中任 意取走1根或2根,但不能不取,取走最后一根 火柴者为胜方,试讨论取胜策略。为了便于理 解,不妨假设n=7。
7 +1
+1
-1
6
5
+1
+1
+1
-1
5
4
4
3
-1 +1
+1
4
3
3
-1 +1
-1 -1
-1
2
3
6、G-E(T)称为树T的余树,记作:T’;
7、T’中的边称为图G的弦,也是树T的弦余。树
1
1
2
3
4
2
3
4
5
6
7
8
5
6
7
8
弦
8、树——(1)不具明显层次的树 (a图)
(2)具有层次的树 (b图)
根
互为兄弟
1
2
3
4
5
6
7
8
a图
互为父
b图
子
§1-2 树的基本性质
1、定理:若连通图G=(V,E),n=|V|,则图的 生成树有n-1条边。
一条边,则有且仅有一条回路。
用圆圈证明法容易证明。
思考题
1、一个图的生成树是不是唯一的呢?
2、如果不是唯一的,3个顶点的无向完全图有 几棵生成树?4个顶点的无向完全图又有几棵 生成树?n个顶点的无向完全图又有几棵生成 树?
完全图是边数最 多的简单无向图
第二章 树
§1 树的概念和基本性质 §2 几类常用树
v∈V(T), 都有d+(v)≤σ,则称T为σ元树;
3、当e=(u,v)时,u称为v之父,v称为u之子; 同父之子称为兄弟。
4、除叶子外,每顶点皆σ子时,称为典型σ 元树;
5、兄弟间有序时,叫有序树,有序树之序列 叫做有序林。
6、有序树当σ=2时,就叫有序二元树。
7、对有序二元树的顶点编码如下: (1)根不标码; (2)兄弟有序,左为兄,标0,右为弟,标1; (3)从根到叶的道路依次抄出各点之码,写在叶
内容回顾
平面图 (1)平面图的定义; (2)欧拉公式及推论; (3)几个定理; (4) K型图、几个定理和
Kuratowski定理; (5)图的厚度; (6)对偶图;
第二章 树
§1 树的概念和基本性质 §2 几类常用树
§2-1 判定树 §2-2 搜索树 §2-3 有序二元树 §2-4 Huffman树 §3 最小生成树
用归纳法易证明。
推论1 :非平凡树至少两个度为1的结点; 推论2: G连通的充要条件是G有生成树。
2、下面六个命题是等价的 (1)G是一棵树; (2)G的任意两顶点间仅有一条道路; (3)G是连通的且m=n-1; (4)G不包含回路且m=n-1; (5)G去掉任意一条边就使得G不连通; (6)G不含回路而且在不相邻的两顶点间增加
下方,称该叶的前缀;
(4)全树的叶从左到右把它们的前缀依次抄出,
叫做该树的前缀码,每个叶子的前缀后加逗
号,最后一个叶子前缀后加句号。
显然有序二元树与前缀码一一对应。
例如,0000,0001,001,010,011,100, 101,11这一前缀码对应的有序二元树如下 图所示:
v0
0
1
0 0000
Βιβλιοθήκη Baidu
1
gh
i
n
x
0000 a
0001 f
Zhixingafangan 执行A方案
如果收到一串数字:11,010,011,101, 011,100,001,0000,0001,0000,100, 001,0000,100。
§2-3 Huffman树
定义:在v0为根,v1,v2,…,vn为叶的有序二元 树中,路径P(v0,vi)(i=1,2,…,n)的长度li叫做叶
不买 不买
买 买 买 不买 买 不买 买 买 买 买 买 不买 不买
解:为了求这10个对象的分类条件:
(1)每次选择一种属性,根据属性不同的取值 把对象划分为不同的集合;
(2)如果集合里的对象的class值相同,则停止 划分;
(3)从判定树根到叶子的路径就是叶子class的 一个划分条件。
序 号
例2.2:决策树
假定公司收集 了右表数据,那 么对于任意一位 新的客人,你能 否根据这个数据 预测这位客人买 不买计算机呢?
序号 年龄 收入 学生 信誉 买计算机吗?
01 青 高 否 良 02 青 高 否 优 03 中 高 否 良 04 老 中 否 良 05 老 低 是 良 06 老 低 是 优 07 中 低 是 优 08 青 中 否 良 09 青 低 是 良 10 老 中 是 良 11 青 中 是 优 12 中 中 否 优 13 中 高 是 良 14 老 中 否 优 15 老 中 否 优
思考
1、例2.2中,选择属性次序的不同,是否会导 致判定树的形状有所不同?
2、效果又有什么不同?
例2.3:排序树
若已给出一数列5,3,7,4,2,9,6,8, 1,10。试把它们按次序从小到大排列。
a
<
≥
5
3
7
b
d
2
46
9
1
8
10
然后对二叉树进行中序遍历,得到的数列为:1, 2,3,4,6,6,7,8,9,10
a
0
1
0
1
11
0
10
1
0
1 0.4
001 010 011 100
1
0.1 0.1 0.1 0.1
0001
gh
i
n
0.05
f
101 z 0.1 x
WPL=4×(0.05+0.05)+3×(0.1+0.1+0.1+0.1+0.1)+2×0.4=2.7
Huffman树的用途很广:
分支程序的判断流程:如果出现概率越大的
如果n不等于3k,则先取者取a根,使na=3k,那么先取者必胜。
§2-3 有序二元树
1、定义1: 图T是一棵树,把每边规定一个 方向且使得任意的vi∈V(T),存在有向道路
P(v0,vi),则称T是外向树,v0叫做根,把外向 树之定向反过来,得到的有向树叫内向树。
v0
v0
2、定义2:T为外向树,对任意的顶点
年龄 收入 学生
信誉 买计算机吗?
谁在买计算机?
01 青 高 否 良
不买
02 青 高 否 优
不买
03 中 高 否 良
买
年龄?
04 老 中 否 良
买
05 老 低 是 良
买
青中
老
06 老 低 是 优
不买
07 中 低 是 优 08 青 中 否 良 09 青 低 是 良 10 老 中 是 良
买 不买
买 买
{1,2,8,9,11}