数据结构与算法基础(第三版)第四章图精品PPT课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
稀疏图 出度
2005 ·秋
稠密图 生成树
Slide. 4 - 3
D.S. 数据结构与算法
第四章 图以及与图有关的算法
4.2 图的表示
Slide. 4 - 4
1、图的顺序存储——邻接矩阵
设图G = ( V, E ) ,V = { 0, 1,…,n-1 }则表示G的邻接 矩阵 A 是其元素按下式定义的nxn矩阵:
Slide. 4 - 8
0 v1 1 v2 2 v3 3 v4
2
1^
3^
+
0^
有向图G1邻接表
0 v1
3^
1 v2
0^
2 v3 3 v4
0^ 2^
G1的逆邻接表
0 v1
1 v2 2 v3 3 v4 4 v5
3
1^
4
2
0^
4
3
1^
2
0^
2
1^
无向图G2邻接表
国家示范性软件学院 2005 ·秋
V1
V2
G1
Int ISEDGE ( G, v1, v2 ) Node FirstAdjVex( G , v )
Node NextAdjVex( G, v, w )
术语:顶点 弧 边 邻接 相邻
依附
路径(路) 简单路径 环路
带标号的图(网)
连通
连通图
强连通图 连通分量
完全图 子图 度
完全图 入度
国家示范性软件学院
D.S. 数据结构与算法
第四章 图以及与图有关的算法
第四ቤተ መጻሕፍቲ ባይዱ 图以及与图有关的算法
Slide. 4 - 1
4.1 基本术语
4.2 图的表示
4.3 图的搜索算法 4.4 图与树的联系
4.5 无向图的双连通性
*4.6 有向图的搜索
4.7 强连通图
4.8 拓扑分类
*4.9 关键路径
4.10 单源最短路径
*4.11 每一对顶点间的最短路径
V3
V4
V1
G2
V4
V2
V3 V5
Slide. 4 - 8
1 若(i, j)∈E A[i][j] = 0 若(i, j)∈E
网的邻接矩阵可定义为: A[i][j] =
wij 若(i, j)∈E ∞ 若(i, j)∈E
n-1
n-1
TD(v
i
)
=
∑A[i][j]
j=0
=
∑A[j][i]
j=0
( n 顶点个数 )
n-1
n-1
TD(vi)=OD(vi)+ID(vi)
第四章 图以及与图有关的算法
V1
V2
0110
G1
G1.arcs 0 0 0 0 0001
V3
V4
1000
V1
V2
G2
V3
V4
V5
G2.arcs
01010 10101 01011 10100 01100
5
3
32
8
4
3
1
1
6
9 5
4
6
5
5
∞ 3 ∞ ∞∞ 1 ∞∞ 5 ∞ 3 ∞ ∞∞ ∞ 4 ∞∞ 9 8 ∞ ∞∞∞ 6∞∞ 5∞∞ ∞∞ ∞ ∞∞ 5
ADT. Graph G = ( V , R ) 数据对象v:v是具有相同特性的数据元素的集合,称为顶点集。 数据关系R:
R = { VR } VR = { <v , w >|v, w ∈V,且P(v,w),<v, w>表示从v到w的弧,
谓词P(v, w)定义了弧 <v, w>的意义或信息 }
国家示范性软件学院 2005 ·秋
Typedef enum { DG, DN, AG, AN } GraphKind ;
Typedef struct ArcCell {
VRType adj ;
InfoType *info ;
} ArcCell , AdjMatrix[ MAX_VERTEX_NUM][MAX_VERTEX_NUM] ;
Slide. 4 - 2
D.S. 数据结构与算法
第四章 图以及与图有关的算法
Slide. 4 - 3
操作: Node NEWNODE ( G ) Void DELNODE ( G, v )
Void SETSUCC ( G, v1, v2 ) Void DELSUCC ( G, v1, v2 ) Listofnode SUCC ( G, v1, v2 ) Lisyofnode PRED ( G, v)
=
∑A[i][j]
j=0
+
∑A[j][i]
j=0
( n 顶点个数 )
国家示范性软件学院 2005 ·秋
Slide. 4 - 4
D.S. 数据结构与算法
第四章 图以及与图有关的算法
#define INFINITY INT_MAX
Slide. 4 - 5
#define MAX_VERTEX_NUM 20
} Vnode, AdjList[MAX_VERTEX_NUM] ;
Typedef struct {
AdjList vertices ;
Int
vexnum ;
Int
kind ;
} ALGraph ;
国家示范性软件学院 2005 ·秋
Slide. 4 - 7
D.S. 数据结构与算法
第四章 图以及与图有关的算法
int
adjvex ;
struct ArcNode *nextarc ;
表结点
InfoType } ArcNode ;
*info ; Adjvex nextarc info
Typedef struct Vnode { VertexType data ; ArcNode *firstarc ;
头结点 data firstarc
国家示范性软件学院 2005 ·秋
Slide. 4 - 1
D.S. 数据结构与算法
第四章 图以及与图有关的算法
4.1 基本定义/术语
Slide. 4 - 2
定义:一个图G=(V,E)是一个由非空的有限集 V和一个边集 E 所组成的。若E中的每条边都是结点的有序对(v , w),就说 该图是有向图(directed graph,digraph)。若E中的每条边是两 个不同结点有序对,就说该图是无向图,其边仍表示成(v, w)。
国家示范性软件学院 2005 ·秋
Slide. 4 - 6
有向图G1
无向图G2
有 向 网
Slide. 4 - 6
D.S. 数据结构与算法
第四章 图以及与图有关的算法
Slide. 4 - 7
2、图的链式存储——邻接表(Adjacency List)
#define MAX_VERTEX_NUM 20
Typedef struct ArcNode {
Typedef struct {
VertexType vex[MAX_VERTEX_NUM] ;
AdjMatrix arcs ;
int
vexnum , arcnum ;
GraphKind kind;
} Mgraph ;
国家示范性软件学院 2005 ·秋
Slide. 4 - 5
D.S. 数据结构与算法