数据结构第六章图-高职高专(第四版)课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《数据结构第六章图-高职高专(第四版)课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 第六 高职 第四 课件
- 资源描述:
-
1、第第 6 章章 图图下一张幻灯片下一张幻灯片上一张幻灯片上一张幻灯片第第6章图章图学习目的要求学习目的要求:1.掌握掌握图图的的基本概念基本概念。2.熟练熟练掌握掌握图图的的存储结构存储结构。3.熟练熟练掌握掌握图图的的深度优先遍历深度优先遍历和和广度优先广度优先遍历遍历的方法和算法。的方法和算法。4.掌握掌握最小生成树最小生成树的的普里姆普里姆和和克鲁斯卡尔克鲁斯卡尔算法。算法。5.掌握掌握最短路径最短路径的两个经典算法的两个经典算法:迪杰斯特拉迪杰斯特拉和和弗洛伊德弗洛伊德算法。算法。6.掌握掌握拓扑排序拓扑排序的的概念概念,会求拓扑,会求拓扑序列序列。7.了解了解关键路径。关键路径。下一
2、张幻灯片下一张幻灯片上一张幻灯片上一张幻灯片本章内容本章内容图图(Graph)是一种典型的是一种典型的非线性结构非线性结构,它较线性结构与,它较线性结构与树形结构树形结构更更复杂复杂。在。在线性表中,数据元素满足线性表中,数据元素满足唯一的线性关系唯一的线性关系,每一个元素,每一个元素(第一个和最后一个第一个和最后一个除外除外)有且仅有有且仅有一个一个直接前驱和直接后继直接前驱和直接后继;在;在树形结构树形结构中,数据元素有明显中,数据元素有明显的的层次关系层次关系,即每个元素只有,即每个元素只有一个直接前驱一个直接前驱,但可以有,但可以有多个直接后继多个直接后继;在;在图形结构中图形结构中,
3、数据元素之间的,数据元素之间的关系关系是是任意任意的,每个元素即可以有的,每个元素即可以有多个直接多个直接前驱前驱,也可以有,也可以有多个直接后继多个直接后继。图图的最早应用可追溯到的最早应用可追溯到18世纪,伟大的数学家世纪,伟大的数学家欧拉欧拉(Euler)利用利用图图解决了著解决了著名的名的哥尼斯堡七桥问题哥尼斯堡七桥问题,这一创举为图在现代科学技术领域的应用奠定了,这一创举为图在现代科学技术领域的应用奠定了基础。基础。图图的应用十分广泛,已渗透到诸如的应用十分广泛,已渗透到诸如电子线路分析电子线路分析、系统工程系统工程、人工人工智能智能和和计算机科学领域计算机科学领域。下一张幻灯片下一
4、张幻灯片上一张幻灯片上一张幻灯片6.1 图的基本术语图的基本术语6.1.1 图的定义图的定义1.图图(Graph)图图是一种是一种数据结构数据结构,图图中的中的数据元素数据元素通常称作通常称作顶点顶点(Vertex),V是顶点的是顶点的有穷非空有穷非空集合;集合;VR是两个顶点间是两个顶点间关系关系的集合。若的集合。若VR,则,则表示从表示从V到到W的一条的一条弧弧(Arc),且称,且称v为为弧尾弧尾(Tail)或初始点或初始点(Initial node),称称w为为弧头弧头(Head)或或终端点终端点(Terminal node),此时的图称为,此时的图称为有向图有向图(Digraph)。若
5、。若VR必有必有VR,即,即VR是是对称对称的,则以的,则以无序无序偶对偶对(v,w)代替这两个有序偶对,此无序偶对代替这两个有序偶对,此无序偶对(v,w)表示表示v和和w之间的一条之间的一条边边(Edge),此时的图称为,此时的图称为无向图无向图(Undigraph)。若图。若图G中中只有顶点而没有边,只有顶点而没有边,称为称为零图零图。对如下的无向图。对如下的无向图G1和有向图和有向图G2可表示为:可表示为:下一张幻灯片下一张幻灯片上一张幻灯片上一张幻灯片6.1 图的基本术语图的基本术语G1=(V1,A1)其中:其中:V1=v0,v1,v2,v3 A1=(v0,v1),(v0,v2),(v
6、3,v1),(v3,v2)G2=(V2,E2)其中:其中:V2=v0,v1,v2 E2=,6.1.2 图的基本术语图的基本术语1.完全图(完全图(Completed Graph)无向完全图无向完全图:若一个无向图有若一个无向图有n个顶点,且每个顶点,且每一个顶点与其他一个顶点与其他n-1个顶点之间都有个顶点之间都有边边,这样,这样的图称为的图称为无向完全图无向完全图。对于一个具有。对于一个具有n个顶个顶点的点的无向完全图无向完全图,它共有,它共有n(n-1)/2条边。条边。有向完全图有向完全图:若一个有向图有若一个有向图有n个个顶点,且每一个顶点与其他顶点,且每一个顶点与其他 n-1个顶点之间
7、都有一条以该顶点为个顶点之间都有一条以该顶点为起点起点的弧,这样的图称为的弧,这样的图称为有向完有向完全图全图。对于一个具有。对于一个具有n个顶点的个顶点的有向完全图有向完全图,它共有,它共有n(n-1)条弧。条弧。下一张幻灯片下一张幻灯片上一张幻灯片上一张幻灯片6.1 图的基本术语图的基本术语2.子图(子图(Subgraph)设有两个图设有两个图A和和B且满足条件且满足条件:V(B)是是V(A)的子集,的子集,E(B)是是E(A)的子集或的子集或A(B)是是A(A)的子集的子集,则称图,则称图B是图是图A的的子图子图。下一张幻灯片下一张幻灯片上一张幻灯片上一张幻灯片6.1 图的基本术语图的基
8、本术语3.路径路径(Path)在无向图在无向图G=(V,E)中,从顶点中,从顶点Vp到到Vq的一条路径是的一条路径是顶点序列顶点序列(Vp,Vi1,Vi2,,Vin,Vq)且且(V p,V i1),(V i1,Vi2),(V in,V q)是是E(G)中的中的边边。对于有向图对于有向图G=(V,A),从顶点,从顶点Vp到到Vq的一条路径是顶点序列的一条路径是顶点序列(Vp,Vi1,Vi2,,Vin,Vq)应满足应满足,是是A中的中的弧,弧,其其路径路径也是也是有向有向的。的。路径上边或弧的路径上边或弧的数目数目称为路径称为路径长长度。度。4.简单路径简单路径序列序列中中顶点顶点不重复出现不重复
9、出现的路径称为的路径称为简单路径简单路径。5.回路(回路(Cycle)和简单回路)和简单回路在一条路径中,如果其在一条路径中,如果其起始点起始点和和终止点终止点是是同一顶点同一顶点,则称其为,则称其为回路回路或或环环。除除第一个顶点第一个顶点和和最后一个顶点最后一个顶点外外,其余顶点其余顶点不重复出现的不重复出现的回路回路,称为,称为简简单回路单回路或或简单环简单环。下一张幻灯片下一张幻灯片上一张幻灯片上一张幻灯片6.1 图的基本术语图的基本术语6.连通图连通图(Connected Graph)和强连通图和强连通图在无向图在无向图G中,若从中,若从Vi 到到Vj有路径,则称有路径,则称Vi和和
10、Vj是是连通连通的。若的。若G中任意两顶中任意两顶点点都是连通都是连通的,则称的,则称G是是连通图连通图。对于对于有向图有向图而言,若有向图而言,若有向图G中每一对不同顶点中每一对不同顶点Vi和和Vj之间有从之间有从Vi到到Vj和从和从Vj到到Vi的路径,则称的路径,则称G为为强连通图强连通图。下一张幻灯片下一张幻灯片上一张幻灯片上一张幻灯片6.1 图的基本术语图的基本术语7.连通分量和强连通分量连通分量和强连通分量连通分量连通分量指的是指的是无向图无向图G中的中的极大连通子图极大连通子图。强连通分量强连通分量指的是指的是有向图有向图G中的中的极大强连通子图极大强连通子图。注意注意:这里是极大
11、而不是最大这里是极大而不是最大。8.邻接点(邻接点(Adjacent)和相关边)和相关边对于对于无向图无向图G=(V,E),若,若(Vi,Vj)是是E(G)中的一条中的一条边边,则称顶点,则称顶点Vi和和Vj互为邻互为邻接点,即接点,即Vi和和Vj相邻接,相邻接,边边(V0,V2)是与顶点是与顶点V0与与V2相关联的相关联的边边。对于有向图对于有向图G=(V,A),若,若是是A(G)中的一条中的一条弧弧,则称顶点,则称顶点Vi邻接到顶邻接到顶点点Vj,顶点,顶点Vj邻接于顶点邻接于顶点Vi,而,而弧弧则是与顶点则是与顶点Vi和和Vj相关联的相关联的弧弧。下一张幻灯片下一张幻灯片上一张幻灯片上一
12、张幻灯片6.1 图的基本术语图的基本术语 9.度度(Degree)、入度、入度(Indegree)和出度和出度(Outdegree)所谓顶点的所谓顶点的度度,就是指和,就是指和该顶点该顶点相相关联的边或弧的数目关联的边或弧的数目。在在有向图有向图中,以中,以终止终止于该顶点的于该顶点的弧的数目弧的数目称为该顶点的入度称为该顶点的入度;以以起始起始于该顶于该顶点的点的弧的数目弧的数目称为该顶点的称为该顶点的出度出度;某顶点的某顶点的入度入度和和出度出度之和称为该顶点的之和称为该顶点的度度。顶点V0的度为3;顶点V1的度为2。顶点V0的入度为1,出度为2,度为3;顶点V1的入度为2,出度为1,度为
13、3;顶点V2的入度为1,出度为1,度为2。下一张幻灯片下一张幻灯片上一张幻灯片上一张幻灯片6.1 图的基本术语图的基本术语10.权和网权和网(Net)在一个在一个图图中,每条中,每条边边都可以标上具有某种含义的都可以标上具有某种含义的数值数值,该数值称为该边的,该数值称为该边的权权。边上。边上带权带权的图称为的图称为带权图带权图,也称为,也称为网网。下一张幻灯片下一张幻灯片上一张幻灯片上一张幻灯片6.2 图的存储结构图的存储结构6.2.1 邻接矩阵邻接矩阵邻接矩阵邻接矩阵是表示顶点之间相邻关系的是表示顶点之间相邻关系的矩阵矩阵,可以用一个二维数组来表示。,可以用一个二维数组来表示。设设G=(V
14、,E)是具有是具有n个顶点的图,顶点序号依次为个顶点的图,顶点序号依次为0,1,2,n-1,则,则G的邻接矩阵是如下定义的的邻接矩阵是如下定义的n阶方阵阶方阵:aij=1 对于无向图,对于无向图,(Vi,Vj)E(G);对于有向图,;对于有向图,E(G)0 其他其他对于对于带权图带权图(网网)的的邻接矩阵邻接矩阵可以定义为可以定义为:aij=Wi 对于无向图,对于无向图,(Vi,Vj)E(G);对于有向图,;对于有向图,E(G);Wi为权为权 其他其他图图的存储结构有多种,的存储结构有多种,存储结构存储结构的的选择选择取决于具体的应用和需要进行的取决于具体的应用和需要进行的运算运算。下面给出三
15、种常用的存储结构:。下面给出三种常用的存储结构:邻接矩阵、邻接表和边集数组邻接矩阵、邻接表和边集数组。下一张幻灯片下一张幻灯片上一张幻灯片上一张幻灯片6.2 图的存储结构图的存储结构在在图图的的邻接矩阵邻接矩阵中,中,无向图无向图的的邻接矩阵邻接矩阵是是对称对称的,而有向图的邻接矩阵不的,而有向图的邻接矩阵不一定对称。并且从一定对称。并且从邻接矩阵邻接矩阵很容易判定任意两个顶点之间是否很容易判定任意两个顶点之间是否有边存在有边存在,并易于求得各个并易于求得各个顶点顶点的的度度。对于对于无向图无向图,顶点,顶点Vi的度是邻接矩阵中第的度是邻接矩阵中第i行(或第行(或第i列)的列)的非零元素非零元
16、素的个数。的个数。对于对于有向图有向图,顶点,顶点Vi的的度度是邻接矩阵中第是邻接矩阵中第i行和第行和第i列的列的非零元素非零元素的个数之的个数之和和;顶点顶点Vi的的出度出度是邻接矩阵中第是邻接矩阵中第i行的行的非零元素非零元素的的个数个数;顶点顶点Vi的的入度入度是邻接矩是邻接矩阵中第阵中第i列的列的非零元素非零元素的的个数个数。G1和和G2的的邻接矩阵邻接矩阵分别是矩阵分别是矩阵A1、A2有向带权图和有向带权图和无向带权图无向带权图的的邻邻接矩阵接矩阵分别是分别是A3、A4下一张幻灯片下一张幻灯片上一张幻灯片上一张幻灯片6.2 图的存储结构图的存储结构在在C语言中,图的邻接矩阵的存储表示
17、如下:语言中,图的邻接矩阵的存储表示如下:#define MAX_VERTEX_NUM 66#define INFINITY 1e6typedef int VRType;/顶点间关系类型顶点间关系类型typedef int VertexType;/顶点类型顶点类型enum GraphKind DG=0,DN=1,UDG=2,UDN=3;/图的种类图的种类typedef struct ArcCell/矩阵元素类型矩阵元素类型 VRType adj;/VRType是顶点关系类型。对无权图,用是顶点关系类型。对无权图,用0或或1表示相邻与否;对带权图,则为权值类型表示相邻与否;对带权图,则为权值类型
展开阅读全文