《图及有向图的应用》PPT课件.ppt
《《图及有向图的应用》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《图及有向图的应用》PPT课件.ppt(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第4章章 图及有向图的应用图及有向图的应用u基本定义与术语基本定义与术语 u图的存储结构图的存储结构 u图的存储结构图的存储结构 u单源最短路径问题单源最短路径问题 u顶点对之间最短路径顶点对之间最短路径 u拓扑排序拓扑排序 u关键路径关键路径 u小结小结小结小结4.1 基本定义与术语基本定义与术语基本定义:基本定义:图的二元组定义:图图的二元组定义:图GG由两个集合由两个集合V V和和E E组成,记为:组成,记为:G=(V,E)G=(V,E)其中:其中:V V是顶点的有穷非空集合,是顶点的有穷非空集合,E E是是V V中顶点偶对(称为边)的有穷集中顶点偶对(称为边)的有穷集 有向图还是无向
2、图,顶点数有向图还是无向图,顶点数n n、边数、边数e e和度数之间有如下关系:和度数之间有如下关系:其中:其中:n n为图中的顶点数,为图中的顶点数,e e为图中的边数,为图中的边数,D(Vi)D(Vi)为图中的第为图中的第i i顶点的度数顶点的度数 基本术语:基本术语:1.1.路路路路径径径径(PathPath)在在无无向向图图GG中中,如如果果存存在在一一个个顶顶点点序序列列vp,vp,vi1,vi1,vi2,vi2,vim,vim,vqvq,使使得得(vp,(vp,vi1)vi1),(vi1,vi2)(vi1,vi2),(vim,vq)(vim,vq)都属于都属于E(G)E(G),则称
3、顶点,则称顶点vpvp到到vqvq存在一条路径(存在一条路径(PathPath)2.2.简简简简单单单单路路路路径径径径 如如如如果果果果一一一一条条条条路路路路径径径径上上上上除除除除vpvp和和和和vqvq外外外外,其其其其余余余余顶顶顶顶点点点点均均均均不不不不相相相相同同同同,则则则则称称称称此此此此路路路路径径径径为为为为一一一一条条条条简简简简单单单单路路路路径(这里径(这里径(这里径(这里vpvp和和和和vqvq可以相同也可以不同)可以相同也可以不同)可以相同也可以不同)可以相同也可以不同)3.3.简单回路简单回路 起点和终点都相同的简单路径称为简单回路(起点和终点都相同的简单路
4、径称为简单回路(CycleCycle)。)。4.4.有根图和图的根有根图和图的根 在一个有向图中,如果存在一个顶点在一个有向图中,如果存在一个顶点v v,从,从v v可以到达图中可以到达图中其他所有顶点,则称此有向图为有根图,其中其他所有顶点,则称此有向图为有根图,其中v v称作图的根。称作图的根。5.5.连通图和连通分量连通图和连通分量 在无向图中,如果从顶点在无向图中,如果从顶点V V到顶点到顶点VV有路径,则称有路径,则称V V和和VV是连通的。如果对于图中的任意两个顶点是连通的。如果对于图中的任意两个顶点ViVi和和VjVj都是连通的,则称都是连通的,则称GG为连通图为连通图 6.6.
5、强连通图和强连通分量强连通图和强连通分量 在有向图在有向图GG中,若对于中,若对于V(G)V(G)中任意两个不同中任意两个不同的顶点的顶点vi vi和和vj vj,都存在从,都存在从vi vi到到vj vj以及从以及从vj vj到到vi vi的路径,则称的路径,则称GG是强连通图。是强连通图。有向图的极大强连通子图称为有向图的极大强连通子图称为GG的强连通分量。的强连通分量。7.7.欧拉图欧拉图 如果图中存在一条通过图中每条边一次且仅一次的回路,则如果图中存在一条通过图中每条边一次且仅一次的回路,则称此回路为欧拉回路,具有欧拉回路的图称为欧拉图称此回路为欧拉回路,具有欧拉回路的图称为欧拉图8.
6、8.8.8.哈密顿图哈密顿图 若图若图GG中存在一条通过图中所有顶点一次且仅一次的回路,中存在一条通过图中所有顶点一次且仅一次的回路,则称此回路为图的哈密顿回路;具有哈密顿回路的图称为哈密顿图则称此回路为图的哈密顿回路;具有哈密顿回路的图称为哈密顿图 4.2 图的存储结构图的存储结构4.2.1 4.2.1 图的邻接矩阵表示法图的邻接矩阵表示法图的邻接矩阵表示法图的邻接矩阵表示法1.1.图的邻接矩阵表示法图的邻接矩阵表示法图的邻接矩阵表示法图的邻接矩阵表示法在图的邻接矩阵表示法中,用一个顺序表来存储顶点信息,用邻接矩阵来表示顶点间的相邻关在图的邻接矩阵表示法中,用一个顺序表来存储顶点信息,用邻接
7、矩阵来表示顶点间的相邻关系。系。2.2.邻接矩阵(邻接矩阵(邻接矩阵(邻接矩阵(Adacency MatrixAdacency Matrix)设设G=(V,E)G=(V,E)是具有是具有n n个顶点的图,则个顶点的图,则GG的邻接矩阵是一个的邻接矩阵是一个n n阶方阵:阶方阵:4.2.2 邻接表表示法邻接表表示法4.2.2 邻接表表示法邻接表表示法图的邻接表表示法类似于树的孩子链表表示法图的邻接表表示法类似于树的孩子链表表示法 邻接表的类型定义如下:邻接表的类型定义如下:#define MaxVerNum 100#define MaxVerNum 100 /最大顶点数为最大顶点数为100100
8、typedef struct nodetypedef struct node /边表结点边表结点 int adjvex;int adjvex;/邻接点域邻接点域 struct node*next;struct node*next;/链域链域 /若要表示边上的权,则应增加一个数据域若要表示边上的权,则应增加一个数据域EdgeNode;EdgeNode;typedef struct vnode typedef struct vnode /顶点表结点顶点表结点 VertexType vertex;VertexType vertex;/顶点域顶点域 EdgeNode*firstedge;EdgeNod
9、e*firstedge;/边表头指针边表头指针 VertexNode;VertexNode;typedef VertexNode AdjListMaxVertexNum;typedef VertexNode AdjListMaxVertexNum;/AdjList/AdjList是邻接表类型是邻接表类型 typedef struct typedef struct AdjList adjlist;AdjList adjlist;/邻接表邻接表 int n,e;int n,e;图中当前顶点数和边数图中当前顶点数和边数 ALGraph;ALGraph;/对于简单的应用,无须定义此类型,可直接使用对于
10、简单的应用,无须定义此类型,可直接使用AdjListAdjList类型类型4.3 图的遍历图的遍历 图的遍历基本方法有两种:深度优先搜索和广度优先搜索,这两种图的遍历基本方法有两种:深度优先搜索和广度优先搜索,这两种方法都适用于有向图和无向图的遍历方法都适用于有向图和无向图的遍历 4.3.1 4.3.1 深度优先搜索深度优先搜索深度优先搜索深度优先搜索 特点:尽可能先对纵深方向进行搜索。特点:尽可能先对纵深方向进行搜索。基本思想是:以图中某个顶点基本思想是:以图中某个顶点v1v1为出发点,先访问为出发点,先访问v1v1,然后选一个,然后选一个v1v1的邻的邻接点接点v2v2,以,以v2v2为新
11、的出发点继续进行深度优先搜索,直至图中所有顶点都被访为新的出发点继续进行深度优先搜索,直至图中所有顶点都被访问过。问过。搜索过程搜索过程:4.3.2 4.3.2 广度优先搜索广度优先搜索广度优先搜索广度优先搜索特点:尽可能优先对横向搜索特点:尽可能优先对横向搜索 基本思想是:从图中某个顶点基本思想是:从图中某个顶点v1v1出发,访问了出发,访问了v1v1之后依次访问之后依次访问v1v1的所有邻接点;然的所有邻接点;然后分别从这些邻接点出发按深度优先搜索遍历图的其他顶点,直至所有顶点都被后分别从这些邻接点出发按深度优先搜索遍历图的其他顶点,直至所有顶点都被访问到访问到 广度优先搜索的过程广度优先
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图及有向图的应用 应用 PPT 课件
限制150内