数据结构严蔚敏第7章 ppt课件
合集下载
数据结构第7章习题ppt课件

Data Structure
完整版P21P.T0课4.2件021
Page 3
已知以二维数组表示的图的邻接矩阵如图所示。试分别画 出自顶点出发进行遍历所得的深度优先生成树和广度优先 生成树。
Data Structure
完整版0课4.2件021
Page 4
请对下边的无向带权图,
❖ 写出它的邻接矩阵,并按普里姆算法求其最小生成树; ❖ 写出它的邻接表,并按克鲁斯卡尔算法求其最小生成树。
Data Structure
完整版P21P.T0课4.2件021
Page 9
Data Structure
完整版P21P.T0课4.2件021
Page 7
试利用 Dijkstra 算法求下图中从顶点 a 到其它各顶点 间的最短路径,写出执行算法过程中各步的状态。
Data Structure
完整版P21P.T0课4.2件021
Page 8
试利用 Floyd 算法求下图所示有向图中各对顶点之间的 最短路径。
Data Structure
完整版P21P.T0课4.2件021
Page 5
试列出下图中全部可能的拓扑有序序列。
Data Structure
完整版P21P.T0课4.2件021
Page 6
对于下图所示的 AOE 网络,计算各活动弧的 e(ai) 和 l(aj) 函数值,各时间(顶点)的 ve(vi) 和 vl(vj) 函数 值;列出各条关键路径。
数据结构
计算机科学与技术学院
基础知识题
已知有向图,请给出该图的 (1) 每个顶点的入/出度; (2) 邻接矩阵; (3) 邻接表; (4) 逆邻接表; (5) 强连通分量。
数据结构[严蔚敏]7
![数据结构[严蔚敏]7](https://img.taocdn.com/s3/m/e789ae7ff5335a8102d220ba.png)
边,这样的无向图称为完全无向图。
完全有向图:对于有向图,若图中顶点数为n ,用
e表示弧的数目,则e[0,n(n-1)] 。具有n(n-1)条边的有 向图称为完全有向图。
完全有向图另外的定义是:
对于有向图G=(V,E),若vi,vjV ,当vi ≠vj时,有 <vi ,vj>E∧<vj , vi >E ,即图中任意两个不同的顶点间都有一 条弧,这样的有向图称为完全有向图。 有很少边或弧的图(e<n㏒n)的图称为稀疏图,反之称为 稠密图。
连通图、图的连通分量:对无向图G=(V,E),若vi ,
vj V,vi和vj都是连通的,则称图G是连通图,否则称为非连 通图。若G是非连通图,则极大的连通子图称为G的连通分 量。 对有向图G=(V,E),若vi ,vj V,都有以vi为起点, vj 为终点以及以vj为起点,vi为终点的有向路径,称图G是强连 通图,否则称为非强连通图。若G是非强连通图,则极大的 强连通子图称为G的强连通分量。 “极大”的含义:指的是对子图再增加图G中的其它顶 点,子图就不再连通。
a c b e d c b e a d a
6 3
b
3
2
c
4
d
1
5
e
(a) 有向图
(b) 生成森林
图7-3 有向图及其生成森林
图7-4 带权有向图
7.1.2 图的抽象数据类型定义
图是一种数据结构,加上一组基本操作就构成了图 的抽象数据类型。 图的抽象数据类型定义如下: ADT Graph{
数据对象V:具有相同特性的数据元素的集合,称为 顶点集。
(c) 邻接矩阵
图7-8 带权有向图的数组存储
⑶ 有向图邻接矩阵的特性
完全有向图:对于有向图,若图中顶点数为n ,用
e表示弧的数目,则e[0,n(n-1)] 。具有n(n-1)条边的有 向图称为完全有向图。
完全有向图另外的定义是:
对于有向图G=(V,E),若vi,vjV ,当vi ≠vj时,有 <vi ,vj>E∧<vj , vi >E ,即图中任意两个不同的顶点间都有一 条弧,这样的有向图称为完全有向图。 有很少边或弧的图(e<n㏒n)的图称为稀疏图,反之称为 稠密图。
连通图、图的连通分量:对无向图G=(V,E),若vi ,
vj V,vi和vj都是连通的,则称图G是连通图,否则称为非连 通图。若G是非连通图,则极大的连通子图称为G的连通分 量。 对有向图G=(V,E),若vi ,vj V,都有以vi为起点, vj 为终点以及以vj为起点,vi为终点的有向路径,称图G是强连 通图,否则称为非强连通图。若G是非强连通图,则极大的 强连通子图称为G的强连通分量。 “极大”的含义:指的是对子图再增加图G中的其它顶 点,子图就不再连通。
a c b e d c b e a d a
6 3
b
3
2
c
4
d
1
5
e
(a) 有向图
(b) 生成森林
图7-3 有向图及其生成森林
图7-4 带权有向图
7.1.2 图的抽象数据类型定义
图是一种数据结构,加上一组基本操作就构成了图 的抽象数据类型。 图的抽象数据类型定义如下: ADT Graph{
数据对象V:具有相同特性的数据元素的集合,称为 顶点集。
(c) 邻接矩阵
图7-8 带权有向图的数组存储
⑶ 有向图邻接矩阵的特性
数据结构严蔚敏(全部章节814张)-(课件)

第1章 绪 论
目前,计算机已深入到社会生活的各个领域,其应 用已不再仅仅局限于科学计算,而更多的是用于控制, 管理及数据处理等非数值计算领域。计算机是一门研究 用计算机进行信息表示和处理的科学。这里面涉及到两 个问题:信息的表示,信息的处理。
信息的表示和组织又直接关系到处理信息的程序的 效率。随着应用问题的不断复杂,导致信息量剧增与信 息范围的拓宽,使许多系统程序和应用程序的规模很大, 结构又相当复杂。因此,必须分析待处理问题中的对象 的特征及各对象之间存在的关系,这就是数据结构这门 课所要研究的问题。
计算机求解问题的一般步骤
编写解决实际问题的程序的一般过程:
– 如何用数据形式描述问题?—即由问题抽象出一个 适当的数学模型; – 问题所涉及的数据量大小及数据之间的关系; – 如何在计算机中存储数据及体现数据之间的关系? – 处理问题时需要对数据作何种运算? – 所编写的程序的性能是否良好? 上面所列举的问题基本上由数据结构这门课程来回答。
– 链式存储结构:在每一个数据元素中增加一个存 放另一个元素地址的指针(pointer ),用该指针来表 示数据元素之间的逻辑结构(关系)。
例:设有数据集合A={3.0,2.3,5.0,-8.5,11.0} ,两种不同
的存储结构。
– 顺序结构:数据元素存放的地址是连续的;
– 链式结构:数据元素存放的地址是否连续没有要 求。
1.1.4 数据结构的存储方式
数据结构在计算机内存中的存储包括数据元素的 存储和元素之间的关系的表示。
元素之间的关系在计算机中有两种不同的表示方法: 顺序表示和非顺序表示。由此得出两种不同的存储结构: 顺序存储结构和链式存储结构。
– 顺序存储结构:用数据元素在存储器中的相对位 置来表示数据元素之间的逻辑结构(关系)。
目前,计算机已深入到社会生活的各个领域,其应 用已不再仅仅局限于科学计算,而更多的是用于控制, 管理及数据处理等非数值计算领域。计算机是一门研究 用计算机进行信息表示和处理的科学。这里面涉及到两 个问题:信息的表示,信息的处理。
信息的表示和组织又直接关系到处理信息的程序的 效率。随着应用问题的不断复杂,导致信息量剧增与信 息范围的拓宽,使许多系统程序和应用程序的规模很大, 结构又相当复杂。因此,必须分析待处理问题中的对象 的特征及各对象之间存在的关系,这就是数据结构这门 课所要研究的问题。
计算机求解问题的一般步骤
编写解决实际问题的程序的一般过程:
– 如何用数据形式描述问题?—即由问题抽象出一个 适当的数学模型; – 问题所涉及的数据量大小及数据之间的关系; – 如何在计算机中存储数据及体现数据之间的关系? – 处理问题时需要对数据作何种运算? – 所编写的程序的性能是否良好? 上面所列举的问题基本上由数据结构这门课程来回答。
– 链式存储结构:在每一个数据元素中增加一个存 放另一个元素地址的指针(pointer ),用该指针来表 示数据元素之间的逻辑结构(关系)。
例:设有数据集合A={3.0,2.3,5.0,-8.5,11.0} ,两种不同
的存储结构。
– 顺序结构:数据元素存放的地址是连续的;
– 链式结构:数据元素存放的地址是否连续没有要 求。
1.1.4 数据结构的存储方式
数据结构在计算机内存中的存储包括数据元素的 存储和元素之间的关系的表示。
元素之间的关系在计算机中有两种不同的表示方法: 顺序表示和非顺序表示。由此得出两种不同的存储结构: 顺序存储结构和链式存储结构。
– 顺序存储结构:用数据元素在存储器中的相对位 置来表示数据元素之间的逻辑结构(关系)。
数据结构严蔚敏PPT(完整版)

算法(Algorithm):是对特定问题求解方法(步骤)的一种 描述,是指令的有限序列,其中每一条指令表示一个或 多个操作。
算法具有以下五个特性
① 有穷性: 一个算法必须总是在执行有穷步之后结 束,且每一步都在有穷时间内完成。
② 确定性:算法中每一条指令必须有确切的含义。 不存在二义性。且算法只有一个入口和一个出口。
图状结构
一般线性表 栈和队列 串 数组 广义表 一般树 二叉树 有向图 无向图
图1-5 数据逻辑结构层次关系图
1.1.5 数据类型
数据类型(Data Type):指的是一个值的集合和定 义在该值集上的一组操作的总称。
数据类型是和数据结构密切相关的一个概念。 在C 语言中数据类型有:基本类型和构造类型。
问题:必须先运行依据算法编制的程序;依赖软硬 件环境,容易掩盖算法本身的优劣;没有实际价值。 事前分析:求出该算法的一个时间界限函数。
与此相关的因素有: – 依据算法选用何种策略; – 问题的规模; – 程序设计的语言; – 编译程序所产生的机器代码的质量; – 机器执行指令的速度; 撇开软硬件等有关部门因素,可以认为一个特定算
K={k1, k2, …, k9} R={ <k1, k3>,<k1, k8>,<k2, k3>,<k2, k4>,<k2, k5>,<k3, k9>, <k5, k6>,<k8, k9>,<k9, k7>,<k4, k7>,<k4, k6> } 画出这逻辑结构的图示,并确定那些是起点,那些是终点
数据元素之间的关系可以是元素之间代表某种含义 的自然关系,也可以是为处理问题方便而人为定义的 关系,这种自然或人为定义的 “关系”称为数据元素 之间的逻辑关系,相应的结构称为逻辑结构。
算法具有以下五个特性
① 有穷性: 一个算法必须总是在执行有穷步之后结 束,且每一步都在有穷时间内完成。
② 确定性:算法中每一条指令必须有确切的含义。 不存在二义性。且算法只有一个入口和一个出口。
图状结构
一般线性表 栈和队列 串 数组 广义表 一般树 二叉树 有向图 无向图
图1-5 数据逻辑结构层次关系图
1.1.5 数据类型
数据类型(Data Type):指的是一个值的集合和定 义在该值集上的一组操作的总称。
数据类型是和数据结构密切相关的一个概念。 在C 语言中数据类型有:基本类型和构造类型。
问题:必须先运行依据算法编制的程序;依赖软硬 件环境,容易掩盖算法本身的优劣;没有实际价值。 事前分析:求出该算法的一个时间界限函数。
与此相关的因素有: – 依据算法选用何种策略; – 问题的规模; – 程序设计的语言; – 编译程序所产生的机器代码的质量; – 机器执行指令的速度; 撇开软硬件等有关部门因素,可以认为一个特定算
K={k1, k2, …, k9} R={ <k1, k3>,<k1, k8>,<k2, k3>,<k2, k4>,<k2, k5>,<k3, k9>, <k5, k6>,<k8, k9>,<k9, k7>,<k4, k7>,<k4, k6> } 画出这逻辑结构的图示,并确定那些是起点,那些是终点
数据元素之间的关系可以是元素之间代表某种含义 的自然关系,也可以是为处理问题方便而人为定义的 关系,这种自然或人为定义的 “关系”称为数据元素 之间的逻辑关系,相应的结构称为逻辑结构。
数据结构 C语言版(严蔚敏版)第7章 图

data Fout
1
2
4
1
e6 2 4
2016/11/7
29
7.3 图的遍历
从已给的连通图中某一顶点出发,沿着一 些边访遍图中所有的顶点,且使每个顶点 仅被访问一次,就叫做图的遍历 ( Graph Traversal )。 图中可能存在回路,且图的任一顶点都可 能与其它顶点相通,在访问完某个顶点之 后可能会沿着某些边又回到了曾经访问过 的顶点。 为了避免重复访问,可设置一个标志顶点 是否被访问过的辅助数组 visited [ ]。
2
1 2
V2
V4
17
结论:
无向图的邻接矩阵是对称的; 有向图的邻接矩阵可能是不对称的。 在有向图中, 统计第 i 行 1 的个数可得顶点 i 的出度,统计第 j 行 1 的个数可得顶点 j 的入度。 在无向图中, 统计第 i 行 (列) 1 的个数可得 顶点i 的度。
2016/11/7
18
2
邻接表 (出度表)
adjvex nextarc
data firstarc
0 A 1 B 2 C
2016/11/7
1 0 1
逆邻接表 (入度表)
21
网络 (带权图) 的邻接表
6 9 0 2 1 C 2 8 3 D
data firstarc Adjvex info nextarc
2016/11/7
9
路径长度 非带权图的路径长度是指此路径 上边的条数。带权图的路径长度是指路径 上各边的权之和。 简单路径 若路径上各顶点 v1,v2,...,vm 均不 互相重复, 则称这样的路径为简单路径。 回路 若路径上第一个顶点 v1 与最后一个 顶点vm 重合, 则称这样的路径为回路或环。
1
2
4
1
e6 2 4
2016/11/7
29
7.3 图的遍历
从已给的连通图中某一顶点出发,沿着一 些边访遍图中所有的顶点,且使每个顶点 仅被访问一次,就叫做图的遍历 ( Graph Traversal )。 图中可能存在回路,且图的任一顶点都可 能与其它顶点相通,在访问完某个顶点之 后可能会沿着某些边又回到了曾经访问过 的顶点。 为了避免重复访问,可设置一个标志顶点 是否被访问过的辅助数组 visited [ ]。
2
1 2
V2
V4
17
结论:
无向图的邻接矩阵是对称的; 有向图的邻接矩阵可能是不对称的。 在有向图中, 统计第 i 行 1 的个数可得顶点 i 的出度,统计第 j 行 1 的个数可得顶点 j 的入度。 在无向图中, 统计第 i 行 (列) 1 的个数可得 顶点i 的度。
2016/11/7
18
2
邻接表 (出度表)
adjvex nextarc
data firstarc
0 A 1 B 2 C
2016/11/7
1 0 1
逆邻接表 (入度表)
21
网络 (带权图) 的邻接表
6 9 0 2 1 C 2 8 3 D
data firstarc Adjvex info nextarc
2016/11/7
9
路径长度 非带权图的路径长度是指此路径 上边的条数。带权图的路径长度是指路径 上各边的权之和。 简单路径 若路径上各顶点 v1,v2,...,vm 均不 互相重复, 则称这样的路径为简单路径。 回路 若路径上第一个顶点 v1 与最后一个 顶点vm 重合, 则称这样的路径为回路或环。
(2024年)数据结构严蔚敏PPT完整版

选择排序的基本思想
在未排序序列中找到最小(或最大)元素,存放到排序 序列的起始位置,然后,再从剩余未排序元素中继续寻 找最小(或最大)元素,然后放到已排序序列的末尾。 以此类推,直到所有元素均排序完毕。
2024/3/26
33
交换排序和归并排序
交换排序的基本思想
通过不断地交换相邻的两个元素(如果它们的顺序错 误)来把最小的元素“浮”到数列的一端。具体实现 时,从第一个元素开始,比较相邻的两个元素,如果 前一个比后一个大,则交换它们的位置;每一对相邻 元素做同样的工作,从开始第一对到结尾的最后一对 ;这步做完后,最后的元素会是最大的数;针对所有 的元素重复以上的步骤,除了最后一个;持续每次对 越来越少的元素重复上面的步骤,直到没有任何一对 数字需要比较。
图的基本操作
创建图、添加顶点、添加边、删除顶点、删除边 等
2024/3/26
27
图的存储结构
01
邻接矩阵表示法
用一个二维数组表示图中顶点间的 关系,适用于稠密图
十字链表表示法
用于有向图,可以方便地找到任一 顶点的入边和出边
03
2024/3/26
02
邻接表表示法
用链表表示图中顶点间的关系,适 用于稀疏图
入栈操作将元素添加到栈顶,出栈操作将栈顶元素删 除,取栈顶元素操作返回栈顶元素但不删除,判断栈
是否为空操作检查栈中是否有元素。
2024/3/26
12
栈的表示和实现
栈可以用数组或链表来实现。
用数组实现时,需要预先分配一块连续的内存空间,用一个变量指示栈顶位置。入栈和出栈操作都可以 通过移动栈顶位置来实现。
22
二叉树的定义和基本操作
二叉树的定义
二叉树是一种特殊的树,每个节点最 多有两个子节点,分别称为左子节点 和右子节点。
数据结构第7章树和二叉树习题课PPT课件

(3)画出二叉树bt的后序线索
a
化树。
b
cd
ef g
hi
j
(3)画出二叉树bt的后序线索 化树。
后序序列
ec hf j i g dba
a
b
cd
ef g
hi
j
(3)画出二叉树bt的后序线索 化树。
0
后序序列 ec hf j i g dba
0a 1
∧
0b 0
root
1
0c1
∧
0 d0
1e1
∧∧
0f1
补1 T={(a,2),(b,3),(c,4),(d,7),(e,9)}为带权字符集, 试构造关于该字符集的一颗哈夫曼树,求其加权路 径长度WPL、T中每个字符的哈曼夫编码和哈夫曼 编码的平均长度。
2 3479
补1 T={(a,2),(b,3),(c,4),(d,7),(e,9)}为带权字符集, 试构造关于该字符集的一颗哈夫曼树,求其加权路 径长度WPL、T中每个字符的哈曼夫编码和哈夫曼 编码的平均长度。
99 45
23
7.3 给定权值集w={2,3,4,7,8,9},试构造关于w 的的一颗哈夫曼树,并求其带权路径长度WPL。
15
78
18 99
45
23
7.3 给定权值集w={2,3,4,7,8,9},试构造关于w 的的一颗哈夫曼树,并求其带权路径长度WPL。
33
15
78
18 99
45
23
WPL=(2+3)×4+4×3+9× 2+(7+8)× 2 =80
(2)写出按先序、中序和后
a
序遍历二叉树bt所得到的结点
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一条有向路径,则称此有向图为强连通图。
否则,其各个强连通子图称作它的 强连通分量。
A
A
B
EB
E
CF
19 2020/11/29
16
16
设图G=(V,{VR})中的一个顶点序列
{ u=vi,0,vi,1, …, vi,m=w}中,(vi,j-1,vi,j)VR 1≤j≤m, 则称从顶点u 到顶点w 之间存在一条路径。
路径上边(或弧)的数目称作路径长度。
如:长度为3的路径 简单路径:序列中顶点
{A,B,C,F}
不重复出现的路径。
7.2 图的存储表示
7.3 图的遍历
7.4 最小生成树
7.5 重(双)连通图和关节点
7.6 两点之间的最短路径问题
7.7 拓扑排序
7.8 关键路径
8
8
2020/11/29
7.1 图的定义与术语
图的结构定义:
图是由一个顶点集 V 和一个弧集 R构成 的数据结构。
Graph = (V , VR )
其中,VR={<v,w>| v,w∈V 且 P(v,w)}
现。这些算法乍一看都比较难,应多对照具体图例的存
储结构进行学习。而图遍历的两种搜索路径和树遍历的
两种搜索路径极为相似,应将两者的算法对照学习以便
提高学习的效果。本章必须完成的算法设计题为 :
7.7,7.9,7.10,7.12,7.14,7.15,77.22
7
2020/11/29
7.1 图的定义与术语
图的应用极为广泛,而且图的各种应用问题的 算法都比较经典,因此本章重点在于理解各种图的 算法及其应用场合。
【知识点】
图的类型定义、图的存储表示、图的深度优先搜 索遍历和图的广度优先搜索遍历、无向网的最小生成 树、最短路径、拓扑排序、关键路径。
6
6
2020/11/29
【学习指南】
离散数学中的图论是专门研究图性质的一个数学分
含有 e=n(n-1) 条弧的有向图称作 有 向完全图;
若边或弧的个数 e<nlogn,则称作
稀疏图,否则称作稠密图。
2020/11/29
14
14
假若顶点v 和顶点w 之间存在一条边, 则称顶点v 和w 互为邻接点, 边(v,w) 和顶点v 和w 相关联。
和顶点v 关联的边的数目定义为顶点v的度。
例如:
B
C
ID(B) = 3 ID(A) = 2
2020/11/29
A F
15
D
E
15
对有向图来说,
A
B
E
CF 例如:
OD(B) = 1
顶点的出度: 以顶点v 为弧尾的弧的数目;
顶点的入度: 以顶点v 为弧头的弧的数目。
ID(B) = 2
TD(B) = 3
2020/11/29
顶点的度(TD)=
出度(OD)+入度(ID)
<B,C>, <C,D>, <D,B>, <D,A>, <E,C> }
2020/11/29
10
10
若<v, w>VR 必有<w, v>VR, 则称 (v,w) 为顶点v 和顶点 w 之间存在一条边。
由顶点集和边 集构成的图称
作无向图。
例如: G2=(V2,VR2)
V2={A, B, ={(A,B),(A,E),
(B,E),(C,D),(D,F),
A
(B,F),(C,F)}
2020/11/29
F
11
C D
E 11
名词和术语
网、子图
完全图、稀疏图、稠密图
邻接点、度、入度、出度
路径、路径长度、简单路径、简单回路
连通图、连通分量、 强连通图、强连通分量
生成树、生成森林
2020/11/29
第七章 图
1
1
2020/11/29
【课前思考】
1. 同学们有没有发现现在的十字路口的交通灯已从过去的一对改为三对, 即每个方向的直行、左拐和右拐能否通行都有相应的交通灯指明。你能否 对某个丁字路口的6条通路画出和第一章绪论中介绍的"五叉路口交通管理 示意图"相类似的图?
同学们一定可以画出如下所示类似的图形。
A
简单回路:序列中第一
B
E 个顶点和最后一个顶
点相同的路径而其余
C
2020/11/29
F
17顶点不重复。 17
若图G中任意两个顶
B
点之间都有路径相通,
则称此图为连通图; A
C D
B A
F
2020/11/29
C
F
E
若无向图为非连通图, D 则图中各个极大连通
E
子图称作此图的连通
分量。
18
18
对有向图,若任意两个顶点之间都存在
2. 如果每次让三条路同时通行,那么从图看出哪些路可以同时通行?
同时可通行的路为:
(AB,BC,CA),(AB,BC,BA),(AB,AC,CA),(CB,CA,BC)
2
2
2020/11/29
精品资料
• 你怎么称呼老师? • 如果老师最后没有总结一节课的重点的难点,你
是否会认为老师的教学方法需要改进? • 你所经历的课堂,是讲座式还是讨论式? • 教师的教鞭 • “不怕太阳晒,也不怕那风雨狂,只怕先生骂我
<v,w>表示从 v 到 w 的一条弧,并称 v 为
弧头,w 为弧尾。
谓词 P(v,w) 定义了弧 <v,w>的意义或信息
9
9
2020/11/29
由于“弧”是有方向的,因此称由顶点集 和弧集构成的图为有向图。
例如: G1 = (V1, VR1)
A
B
E
CD
其中
V1={A, B, C, D, E} VR1={<A,B>, <A,E>,
支,但图论注重研究图的纯数学性质,而数据结构中对
图的讨论则侧重于在计算机中如何表示图以及如何实现
图的操作和应用等。图是较线性表和树更为复杂的数据
结构,因此和线性表、树不同,虽然在遍历图的同时可
以对顶点或弧进行各种操作,但更多图的应用问题如求
最小生成树和最短路径等在图论的研究中都早已有了特
定算法,在本章中主要是介绍它们在计算机中的具体实
笨,没有学问无颜见爹娘 ……” • “太阳当空照,花儿对我笑,小鸟说早早早……”
4
【学习目标】
1.领会图的类型定义。 2.熟悉图的各种存储结构及其构造算法, 了解各种存储结构的特点及其选用原则。 3.熟练掌握图的两种遍历算法。 4.理解各种图的应用问题的算法。
5
5
2020/11/29
【重点和难点】
12
12
15 A 9
11
B 7 21
E
3
C2 F
弧或边带权的图 分别称作有向网或 无向网。
设图G=(V,{VR}) 和 图 G=(V,{VR}), 且 VV, VRVR, 则称 G 为 G 的子图。
13 2020/11/29
B A
B
CC
E F 13
假设图中有 n 个顶点,e 条边,则
含有 e=n(n-1)/2 条边的无向图称作完 全图;
否则,其各个强连通子图称作它的 强连通分量。
A
A
B
EB
E
CF
19 2020/11/29
16
16
设图G=(V,{VR})中的一个顶点序列
{ u=vi,0,vi,1, …, vi,m=w}中,(vi,j-1,vi,j)VR 1≤j≤m, 则称从顶点u 到顶点w 之间存在一条路径。
路径上边(或弧)的数目称作路径长度。
如:长度为3的路径 简单路径:序列中顶点
{A,B,C,F}
不重复出现的路径。
7.2 图的存储表示
7.3 图的遍历
7.4 最小生成树
7.5 重(双)连通图和关节点
7.6 两点之间的最短路径问题
7.7 拓扑排序
7.8 关键路径
8
8
2020/11/29
7.1 图的定义与术语
图的结构定义:
图是由一个顶点集 V 和一个弧集 R构成 的数据结构。
Graph = (V , VR )
其中,VR={<v,w>| v,w∈V 且 P(v,w)}
现。这些算法乍一看都比较难,应多对照具体图例的存
储结构进行学习。而图遍历的两种搜索路径和树遍历的
两种搜索路径极为相似,应将两者的算法对照学习以便
提高学习的效果。本章必须完成的算法设计题为 :
7.7,7.9,7.10,7.12,7.14,7.15,77.22
7
2020/11/29
7.1 图的定义与术语
图的应用极为广泛,而且图的各种应用问题的 算法都比较经典,因此本章重点在于理解各种图的 算法及其应用场合。
【知识点】
图的类型定义、图的存储表示、图的深度优先搜 索遍历和图的广度优先搜索遍历、无向网的最小生成 树、最短路径、拓扑排序、关键路径。
6
6
2020/11/29
【学习指南】
离散数学中的图论是专门研究图性质的一个数学分
含有 e=n(n-1) 条弧的有向图称作 有 向完全图;
若边或弧的个数 e<nlogn,则称作
稀疏图,否则称作稠密图。
2020/11/29
14
14
假若顶点v 和顶点w 之间存在一条边, 则称顶点v 和w 互为邻接点, 边(v,w) 和顶点v 和w 相关联。
和顶点v 关联的边的数目定义为顶点v的度。
例如:
B
C
ID(B) = 3 ID(A) = 2
2020/11/29
A F
15
D
E
15
对有向图来说,
A
B
E
CF 例如:
OD(B) = 1
顶点的出度: 以顶点v 为弧尾的弧的数目;
顶点的入度: 以顶点v 为弧头的弧的数目。
ID(B) = 2
TD(B) = 3
2020/11/29
顶点的度(TD)=
出度(OD)+入度(ID)
<B,C>, <C,D>, <D,B>, <D,A>, <E,C> }
2020/11/29
10
10
若<v, w>VR 必有<w, v>VR, 则称 (v,w) 为顶点v 和顶点 w 之间存在一条边。
由顶点集和边 集构成的图称
作无向图。
例如: G2=(V2,VR2)
V2={A, B, ={(A,B),(A,E),
(B,E),(C,D),(D,F),
A
(B,F),(C,F)}
2020/11/29
F
11
C D
E 11
名词和术语
网、子图
完全图、稀疏图、稠密图
邻接点、度、入度、出度
路径、路径长度、简单路径、简单回路
连通图、连通分量、 强连通图、强连通分量
生成树、生成森林
2020/11/29
第七章 图
1
1
2020/11/29
【课前思考】
1. 同学们有没有发现现在的十字路口的交通灯已从过去的一对改为三对, 即每个方向的直行、左拐和右拐能否通行都有相应的交通灯指明。你能否 对某个丁字路口的6条通路画出和第一章绪论中介绍的"五叉路口交通管理 示意图"相类似的图?
同学们一定可以画出如下所示类似的图形。
A
简单回路:序列中第一
B
E 个顶点和最后一个顶
点相同的路径而其余
C
2020/11/29
F
17顶点不重复。 17
若图G中任意两个顶
B
点之间都有路径相通,
则称此图为连通图; A
C D
B A
F
2020/11/29
C
F
E
若无向图为非连通图, D 则图中各个极大连通
E
子图称作此图的连通
分量。
18
18
对有向图,若任意两个顶点之间都存在
2. 如果每次让三条路同时通行,那么从图看出哪些路可以同时通行?
同时可通行的路为:
(AB,BC,CA),(AB,BC,BA),(AB,AC,CA),(CB,CA,BC)
2
2
2020/11/29
精品资料
• 你怎么称呼老师? • 如果老师最后没有总结一节课的重点的难点,你
是否会认为老师的教学方法需要改进? • 你所经历的课堂,是讲座式还是讨论式? • 教师的教鞭 • “不怕太阳晒,也不怕那风雨狂,只怕先生骂我
<v,w>表示从 v 到 w 的一条弧,并称 v 为
弧头,w 为弧尾。
谓词 P(v,w) 定义了弧 <v,w>的意义或信息
9
9
2020/11/29
由于“弧”是有方向的,因此称由顶点集 和弧集构成的图为有向图。
例如: G1 = (V1, VR1)
A
B
E
CD
其中
V1={A, B, C, D, E} VR1={<A,B>, <A,E>,
支,但图论注重研究图的纯数学性质,而数据结构中对
图的讨论则侧重于在计算机中如何表示图以及如何实现
图的操作和应用等。图是较线性表和树更为复杂的数据
结构,因此和线性表、树不同,虽然在遍历图的同时可
以对顶点或弧进行各种操作,但更多图的应用问题如求
最小生成树和最短路径等在图论的研究中都早已有了特
定算法,在本章中主要是介绍它们在计算机中的具体实
笨,没有学问无颜见爹娘 ……” • “太阳当空照,花儿对我笑,小鸟说早早早……”
4
【学习目标】
1.领会图的类型定义。 2.熟悉图的各种存储结构及其构造算法, 了解各种存储结构的特点及其选用原则。 3.熟练掌握图的两种遍历算法。 4.理解各种图的应用问题的算法。
5
5
2020/11/29
【重点和难点】
12
12
15 A 9
11
B 7 21
E
3
C2 F
弧或边带权的图 分别称作有向网或 无向网。
设图G=(V,{VR}) 和 图 G=(V,{VR}), 且 VV, VRVR, 则称 G 为 G 的子图。
13 2020/11/29
B A
B
CC
E F 13
假设图中有 n 个顶点,e 条边,则
含有 e=n(n-1)/2 条边的无向图称作完 全图;