图以及最小生成树和最短路径概论

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。


2
2
1
3
1
3
有向完全图 例
245
无向完全图 5
1
3
3 6
6
图与子图 例

245
1
57
1
3
6
32
46
G2
顶点5的度:3 顶点2的度:4
G1
顶点2入度:1 出度:3 顶点4入度:1 出度:0

路径:1,2,3,5,6,3 路径长度:5
245
简单路径:1,2,3,5
回路:1,2,3,5,6,3,1
1
3
2
0
1
2
3
45
6
完全图 在有n个结点的无向图中,若有n(n-1)/2
条边,即任意两个结点之间有且只有一条边,则称此
图为无向完全图。在有n个结点的有向图中,若有n(n-1)
条边,即任意两个结点之间有且只有方向相反的两条
边,则称此图为有向完全图。
0
1
3
2
0
1
2
3
邻接结点 在无向图G中,若(u, v)是E(G)中的 一条边,则称u和v互为邻接结点,并称边(u, v)依 附于结点u和v。在有向图G中,若<u, v>是E(G)中的 一条边,则称结点u邻接到结点v,结点v邻接自结点u, 并称边<u, v>和结点u和结点v相关联。
1. 图的基本概念 2. 图的存储结构 3. 图的遍历 4. 最小生成树 5. 最短路径 6. 拓扑排序 7. 关键路径
9.1 图的基本概念
定义: 图是由顶点集合(vertex)及边的集合 组成的一种数据结构: Graph=( V, E )
其中 V = { x | x 某个数据对象} 是顶点的 有穷非空集合;
不同的边。有向图中的结点对<x, y>用一对尖
括号括起来,x是有向边的始点,y是有向边的
终点,有向图中的边也称作弧(Arc).
0
0
1
1
2
2
3
无向图 在无向图中,结点对(x, y)是无 序的,结点对(x, y)称为与结点x和结点y相关 联的一条边。(x, y)等价于<x, y>和<y, x>。
0
1
E = {(x, y) | x, y V } 是顶点之间关系的有穷集合,也叫做边
(edge)集 合。例如:E={ <A,B>,<C,D>,<A.D>,<B,C>}
有向图 在有向图中,结点对<x, y>是
有序的,结点对<x, y>称为从结点x到结点y的
一条有向边,因此,<x, y>与<y, x>是两条
9 8
15
63 6
4
16
7
B
60
40
A
80
C
30 75
35
D 45 E
▪图的连通 在无向图G中,若两个顶点vi和vj之间有 路径存在,则称vi 和vj 是连通的。若G中任意两 个顶点都是连通的,则称G为连通图。非连通图的 极大连通子图叫做连通分量。
强连通图与强连通分量 在有向图中, 若对于每一 对顶点vi和vj, 都存在一条从vi到vj和从vj到vi的路径, 则称此图是强连通图。非强连通图的极大强连通 子图叫做强连通分量。
(a)
(b)
00
1
1
22
3
(c)
(d)
•子图 设有两个图 G=(V, E) 和 G‘=(V’, E‘)。若 V’ V 且 E‘E, 则称 图G’ 是 图G 的子图。
• 路径 在图G=(V, E)中,若从结点vi出发有一组边使 可到达结点vj,则称结点vi到结点vj的结点序列为从 结点vi到结点vj的路径 ▪ 简单路径和回路 若路径上各结点v1, v2, …, vm,互 不重复,则称这样的路径为简单路径;若路径上第
3
6
简单回路:3,5,6,3
G1
例 1
57
32
46
G2
路径:1,2,5,7,6,5,2,3 路径长度:7 简单路径:1,2,5,7,6 回路:1,2,5,7,6,5,2,1 简单回路:1,2,3,1
例 245
1
3
连通图 6

5
3
6
强连通图

245
非连通图
1
3
连通分量 6
▪生成树 一个连通图的生成树是它的极小 连通子图,在n个顶点的情形下,有n-1条 边。
一个结点v1与最后一个结点vm重合,则称这样的路 径为回路或环。
权 有些图的边附带有数据信息,这些附带的
数据信息称为权。第i条边的权用符号wi表示。
路径长度 对于不带权的图,一条路径的路径
长度是指该路径上的边的条数;对于带权的图,一
条路径的路径长度是指该路径上各个边权值的总和。
27 5
10 16
12 37
0
0
wk.baidu.com00
1
1
3
1
2
2
3 45 6
(a)
(b)
1
22
3
(c)
(d)
结点的度 结点v的度是与它相关联的边的条 数,记作TD(v)。
▪ 顶点 v 的入度 是以 v 为终点的有向边的条数, 记作 ID(v); 顶点 v 的出度是以 v 为始点的有向 边的条数, 记作 OD(v)。
0
0
1
3
1
2
2
3 45 6
•生成森林: 由非连通图的每个连通分量可以分别 得到一棵生成树,各个连通分量的生成树组合构
成一个生成森林(SPANNING FOREST).
9. 2 图的存储结构
图的存储结构比较复杂,其复杂性主要表现在:
◆ 任意顶点之间可能存在联系,无法以数据元素在存储区中的物理 位置来表示元素之间的关系。
◆ 图中顶点的度不一样,有的可能相差很大,若按度数最大的顶点 设计结构,则会浪费很多存储单元,反之按每个顶点自己的度设计不 同的结构,又会影响操作。
a b c d
(b) 顶点矩阵
0111 1011 1101 1110
(c) 邻接矩阵
图9-5 无向无权图的数组存储
(2) 带权图的邻接矩阵
无向带权图G=(V,E) 的邻接矩阵如图9-6所示。其 元素的定义如下:
A[i][j]=
Wij ∞
若(vi , vj)E,即vi , vj邻接,权值为wij 若(vi , vj)E,即vi , vj不邻接时
图的常用的存储结构有:邻接矩阵、邻接链表、十 字链表、邻接多重表和边表。
9.2.1 邻接矩阵(数组)表示法
基本思想:对于有n个顶点的图,用一维数组vexs[n]存 储顶点信息,用二维数组A[n][n]存储顶点之间关系的信 息。该二维数组称为邻接矩阵。在邻接矩阵中,以顶点 在vexs数组中的下标代表顶点,邻接矩阵中的元素A[i][j] 存放的是顶点i到顶点j之间关系的信息。
1 无向图的数组表示
(1) 无权图的邻接矩阵
无向无权图G=(V,E)有n(n≧1)个顶点,其邻接矩阵 是n阶对称方阵,如图9-5所示。其元素的定义如下:
A[i][j]= 1 若(vi , vj)E,即vi , vj邻接 0 若(vi , vj)E,即vi , vj不邻接
ad
bc
(a) 无向图
vexs
相关文档
最新文档