数据结构图
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7.1 抽象数据类型图的定义 7.2 图的存储表示
7.3 图的遍历 7.4 最小生成树
7.5 重(双)连通图和关节点 7.6 两点之间的最短路径问题
7.7 拓扑排序 7.8 关键路径
图的基本概念
图定义 图是由顶点集合(vertex)及顶点间的 关系集合组成的一种数据结构:
Graph=( V, E ) 其中 V = { x | x 某个数据对象}
由于“弧”是有方向的,因此称由顶点集 和弧集构成的图为有向图。
例如: G1 = (V1, VR1)
A
B
E
CD
其中 V1={A, B, C, D, E} VR1={<A,B>, <A,E>,
<B,C>, <C,D>, <D,B>, <D,A>, <E,C> }
若<v, w>VR 必有<w, v>VR, 则称 (v,w) 为顶点v 和顶点 w 之间存在一条边。
生成树 一个连通图的生成树是其极小连通子 图,在 n 个顶点的情形下,有 n-1 条边。
图的结构定义:
图是由一个顶点集 V 和一个弧集 R构成 的数据结构。
Graph = (V , R ) 其中,VR={<v,w>| v,w∈V 且 P(v,w)}
<v,w>表示从 v 到 w 的一条弧,并称 v 为 弧头,w 为弧尾。 谓词 P(v,w) 定义了弧 <v,w>的意义或信息。
0
0
0
0
子图
12
1
12
2
3
3
3
3
权 某些图的边具有与它相关的数, 称之为权。 这种带权图叫做网络。
顶点的度 一个顶点v的度是与它相关联的边的 条数。记作TD(v)。在有向图中, 顶点的度等于 该顶点的入度与出度之和。
顶点 v 的入度是以 v 为终点的有向边的条数, 记作 ID(v); 顶点 v 的出度是以 v 为始点的有向 边的条数, 记作 OD(v)。
是顶点的有穷非空集合; E = {(x, y) | x, y V }
或 E = {<x, y> | x, y V && Path (x, y)} 是顶点之间关系的有穷集合,也叫做边(edge) 集合。Path (x, y)表示从 x 到 y 的一条单向通 路, 它是有方向的。
有向图与无向图 在有向图中,顶点对 <x, y> 是有序的。在无向图中,顶点对(x, y)是无序 的。
完全图 若有 n 个顶点的无向图有 n(n-1)/2 条 边, 则此图为完全无向图。有 n 个顶点的有向 图有n(n-1) 条边, 则此图为完全有向图。
0
0
1
21
2
3
34 56
00
1
1
2
2
邻接顶点 如果 (u, v) 是 E(G) 中的一条边, 则称 u 与 v 互为邻接顶点。
子图 设有两个图G=(V, E) 和G'=(V', E')。 若V ' V 且E'E, 则称图G'是图G的子图。
由顶点集和边 集构成的图称
作无向图。
例如: G2=(V2,VR2)
wk.baidu.com
V2={A, B, C, D, E, F}
B
VR2={<A,B>, <A,E>,
<B,E>, <C,D>, <D,F>, A
<B,F>, <C,F> }
F
C D
E
名词和术语
网、子图 完全图、稀疏图、稠密图 邻接点、度、入度、出度 路径、路径长度、简单路径、简单回路
路径上边的数目称作路径长度。
如:长度为3的路径 简单路径:序列中顶点
{A,B,C,F}
不重复出现的路径。
A
简单回路:序列中第一
B
E 个顶点和最后一个顶
CF
点相同的路径。
若图G中任意两个顶
B
点之间都有路径相通,
则称此图为连通图; A
C D
B A
F
C
F
E
D E
若无向图为非连通图, 则图中各个极大连通 子图称作此图的连通 分量。
3
1
2
3
1
2
3
连通图与连通分量 在无向图中, 若从顶点v1 到顶点v2有路径, 则称顶点v1与v2是连通的。 如果图中任意一对顶点都是连通的, 则称此图 是连通图。非连通图的极大连通子图叫做连 通分量。
强连通图与强连通分量 在有向图中, 若对于 每一对顶点vi和vj, 都存在一条从vi到vj和从vj到 vi的路径, 则称此图是强连通图。非强连通图 的极大强连通子图叫做强连通分量。
路径长度 非带权图的路径长度是指此路径上 边的条数。带权图的路径长度是指路径上各边 的权之和。 简单路径 若路径上各顶点 v1, v2, ..., vm 均不 互相重复, 则称这样的路径为简单路径。 回路 若路径上第一个顶点 v1 与最后一个顶 点vm 重合, 则称这样的路径为回路或环。
0
0
0
1
2
含有 e=n(n-1) 条弧的有向图称作 有 向完全图;
若边或弧的个数 e<nlogn,则称作 稀疏图,否则称作稠密图。
假若顶点v 和顶点w 之间存在一条边, 则称顶点v 和w 互为邻接点, 边(v,w) 和顶点v 和w 相关联。
和顶点v 关联的边的数目定义为边的度。
例如:
B
C
ID(B) = 3 ID(A) = 2
对有向图,若任意两个顶点之间都存在
路径 在图 G=(V, E) 中, 若从顶点 vi 出发, 沿 一些边经过一些顶点 vp1, vp2, …, vpm,到达顶 点vj。则称顶点序列 (vi vp1 vp2 ... vpm vj) 为从顶 点vi 到顶点 vj 的路径。它经过的边(vi, vp1)、 (vp1, vp2)、...、(vpm, vj) 应是属于E的边。
A F
D E
对有向图来说,
A
B
E
CF 例如:
OD(B) = 1 ID(B) = 2
TD(B) = 3
顶点的出度: 以顶点v 为弧尾的弧的数目;
顶点的入度: 以顶点v 为弧头的弧的数目。
顶点的度(TD)= 出度(OD)+入度(ID)
设图G=(V,{VR})中的一个顶点序列
{ u=vi,0,vi,1, …, vi,m=w}中,(vi,j-1,vi,j)VR 1≤j≤m, 则称从顶点u 到顶点w 之间存在一条路径。
连通图、连通分量、 强连通图、强连通分量 生成树、生成森林
15 A 9
11
B 7 21
E
3
C2 F
弧或边带权的图 分别称作有向网或 无向网。
设图G=(V,{VR}) 和 图 G=(V,{VR}), 且 VV, VRVR, 则称 G 为 G 的子图。
B B
C
A E
A
假设图中有 n 个顶点,e 条边,则 含有 e=n(n-1)/2 条边的无向图称作完 全图;
7.3 图的遍历 7.4 最小生成树
7.5 重(双)连通图和关节点 7.6 两点之间的最短路径问题
7.7 拓扑排序 7.8 关键路径
图的基本概念
图定义 图是由顶点集合(vertex)及顶点间的 关系集合组成的一种数据结构:
Graph=( V, E ) 其中 V = { x | x 某个数据对象}
由于“弧”是有方向的,因此称由顶点集 和弧集构成的图为有向图。
例如: G1 = (V1, VR1)
A
B
E
CD
其中 V1={A, B, C, D, E} VR1={<A,B>, <A,E>,
<B,C>, <C,D>, <D,B>, <D,A>, <E,C> }
若<v, w>VR 必有<w, v>VR, 则称 (v,w) 为顶点v 和顶点 w 之间存在一条边。
生成树 一个连通图的生成树是其极小连通子 图,在 n 个顶点的情形下,有 n-1 条边。
图的结构定义:
图是由一个顶点集 V 和一个弧集 R构成 的数据结构。
Graph = (V , R ) 其中,VR={<v,w>| v,w∈V 且 P(v,w)}
<v,w>表示从 v 到 w 的一条弧,并称 v 为 弧头,w 为弧尾。 谓词 P(v,w) 定义了弧 <v,w>的意义或信息。
0
0
0
0
子图
12
1
12
2
3
3
3
3
权 某些图的边具有与它相关的数, 称之为权。 这种带权图叫做网络。
顶点的度 一个顶点v的度是与它相关联的边的 条数。记作TD(v)。在有向图中, 顶点的度等于 该顶点的入度与出度之和。
顶点 v 的入度是以 v 为终点的有向边的条数, 记作 ID(v); 顶点 v 的出度是以 v 为始点的有向 边的条数, 记作 OD(v)。
是顶点的有穷非空集合; E = {(x, y) | x, y V }
或 E = {<x, y> | x, y V && Path (x, y)} 是顶点之间关系的有穷集合,也叫做边(edge) 集合。Path (x, y)表示从 x 到 y 的一条单向通 路, 它是有方向的。
有向图与无向图 在有向图中,顶点对 <x, y> 是有序的。在无向图中,顶点对(x, y)是无序 的。
完全图 若有 n 个顶点的无向图有 n(n-1)/2 条 边, 则此图为完全无向图。有 n 个顶点的有向 图有n(n-1) 条边, 则此图为完全有向图。
0
0
1
21
2
3
34 56
00
1
1
2
2
邻接顶点 如果 (u, v) 是 E(G) 中的一条边, 则称 u 与 v 互为邻接顶点。
子图 设有两个图G=(V, E) 和G'=(V', E')。 若V ' V 且E'E, 则称图G'是图G的子图。
由顶点集和边 集构成的图称
作无向图。
例如: G2=(V2,VR2)
wk.baidu.com
V2={A, B, C, D, E, F}
B
VR2={<A,B>, <A,E>,
<B,E>, <C,D>, <D,F>, A
<B,F>, <C,F> }
F
C D
E
名词和术语
网、子图 完全图、稀疏图、稠密图 邻接点、度、入度、出度 路径、路径长度、简单路径、简单回路
路径上边的数目称作路径长度。
如:长度为3的路径 简单路径:序列中顶点
{A,B,C,F}
不重复出现的路径。
A
简单回路:序列中第一
B
E 个顶点和最后一个顶
CF
点相同的路径。
若图G中任意两个顶
B
点之间都有路径相通,
则称此图为连通图; A
C D
B A
F
C
F
E
D E
若无向图为非连通图, 则图中各个极大连通 子图称作此图的连通 分量。
3
1
2
3
1
2
3
连通图与连通分量 在无向图中, 若从顶点v1 到顶点v2有路径, 则称顶点v1与v2是连通的。 如果图中任意一对顶点都是连通的, 则称此图 是连通图。非连通图的极大连通子图叫做连 通分量。
强连通图与强连通分量 在有向图中, 若对于 每一对顶点vi和vj, 都存在一条从vi到vj和从vj到 vi的路径, 则称此图是强连通图。非强连通图 的极大强连通子图叫做强连通分量。
路径长度 非带权图的路径长度是指此路径上 边的条数。带权图的路径长度是指路径上各边 的权之和。 简单路径 若路径上各顶点 v1, v2, ..., vm 均不 互相重复, 则称这样的路径为简单路径。 回路 若路径上第一个顶点 v1 与最后一个顶 点vm 重合, 则称这样的路径为回路或环。
0
0
0
1
2
含有 e=n(n-1) 条弧的有向图称作 有 向完全图;
若边或弧的个数 e<nlogn,则称作 稀疏图,否则称作稠密图。
假若顶点v 和顶点w 之间存在一条边, 则称顶点v 和w 互为邻接点, 边(v,w) 和顶点v 和w 相关联。
和顶点v 关联的边的数目定义为边的度。
例如:
B
C
ID(B) = 3 ID(A) = 2
对有向图,若任意两个顶点之间都存在
路径 在图 G=(V, E) 中, 若从顶点 vi 出发, 沿 一些边经过一些顶点 vp1, vp2, …, vpm,到达顶 点vj。则称顶点序列 (vi vp1 vp2 ... vpm vj) 为从顶 点vi 到顶点 vj 的路径。它经过的边(vi, vp1)、 (vp1, vp2)、...、(vpm, vj) 应是属于E的边。
A F
D E
对有向图来说,
A
B
E
CF 例如:
OD(B) = 1 ID(B) = 2
TD(B) = 3
顶点的出度: 以顶点v 为弧尾的弧的数目;
顶点的入度: 以顶点v 为弧头的弧的数目。
顶点的度(TD)= 出度(OD)+入度(ID)
设图G=(V,{VR})中的一个顶点序列
{ u=vi,0,vi,1, …, vi,m=w}中,(vi,j-1,vi,j)VR 1≤j≤m, 则称从顶点u 到顶点w 之间存在一条路径。
连通图、连通分量、 强连通图、强连通分量 生成树、生成森林
15 A 9
11
B 7 21
E
3
C2 F
弧或边带权的图 分别称作有向网或 无向网。
设图G=(V,{VR}) 和 图 G=(V,{VR}), 且 VV, VRVR, 则称 G 为 G 的子图。
B B
C
A E
A
假设图中有 n 个顶点,e 条边,则 含有 e=n(n-1)/2 条边的无向图称作完 全图;