顶点对课件讲义整理.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《顶点对课件讲义整理.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 顶点 课件 讲义 整理
- 资源描述:
-
1、东南大学计算机学院东南大学计算机学院 方效林方效林本课件借鉴了清华大学殷人昆老师和哈尔滨工业大学张岩老师的课件第七章第七章 图图本章主要内容本章主要内容n图的基本概念图的基本概念n图的存储表示图的存储表示n图的遍历与连通性图的遍历与连通性n最小生成树最小生成树n最短路径最短路径2图的基本概念图的基本概念n定义定义r图是由顶点及顶点之间的关系集合组成的数据结图是由顶点及顶点之间的关系集合组成的数据结构构Graph=(V,E)V是顶点的有穷非空集,是顶点的有穷非空集,V=x|x某个对象某个对象E是顶点之间关系,称为是顶点之间关系,称为边边(edge)的有穷非穷集,的有穷非穷集,E=(x,y)|x,
2、yV3图的基本概念图的基本概念n有向图与无向图有向图与无向图r有向图中,顶点对有向图中,顶点对(x,y)是是有序有序的的r无向图中,顶点对无向图中,顶点对(x,y)是是无序无序的的n完全图完全图rn个顶点的无向图有个顶点的无向图有n(n-1)/2条边条边,该图为完全图该图为完全图rn个顶点的有向图有个顶点的有向图有n(n-1)条边条边,该图为完全有向图该图为完全有向图421302140完全无向图完全无向图867365无向图无向图(自由树自由树)120有向图有向图完全有向图完全有向图图的基本概念图的基本概念n邻接顶点邻接顶点r(u,v)是是E中的一条边,则称中的一条边,则称u与与v互为邻接顶点互
3、为邻接顶点n子图子图r设有两个图设有两个图 G(V,E)和和 G(V,E)。若。若 V V 且且 E E,则称则称G是是G 的子图的子图n权:边附带的权重,称这样的图称为带权图权:边附带的权重,称这样的图称为带权图521301302132130子图子图图的基本概念图的基本概念n顶点顶点v的度的度r与与v为端点的边条数,记作为端点的边条数,记作D(v)r入度:有向图中入度:有向图中,以以v为终点的边的条数为终点的边的条数,记作记作ID(v)r出度:有向图中出度:有向图中,以以v为始点的边的条数为始点的边的条数,记作记作OD(v)r有向图中有向图中v的度为入度与出度的和的度为入度与出度的和n路径路
4、径r图图 G(V,E)中中,从顶点从顶点 vi 出发出发,沿一些边经过一沿一些边经过一些顶点些顶点 vp1,vp2,vpm,到达顶点,到达顶点vj。则称顶点序。则称顶点序列列(vi vp1 vp2.vpm vj)为从顶点为从顶点vi 到顶点到顶点 vj 的路的路径。它经过的边径。它经过的边(vi,vp1)、(vp1,vp2)、.、(vpm,vj)应是属于应是属于E的边。的边。6图的基本概念图的基本概念n路径长度路径长度r非带权图的路径长度是指此路径上非带权图的路径长度是指此路径上边的条数边的条数r带权图的路径长度是指路径上各带权图的路径长度是指路径上各边的权之和边的权之和n简单路径简单路径r路
5、径上各顶点路径上各顶点 v1,v2,.,vm 均不互相重复均不互相重复n回路回路r路径上第一个顶点路径上第一个顶点 v1 与最后一个顶点与最后一个顶点vm 重合重合7图的基本概念图的基本概念n连通图与连通分量连通图与连通分量r无向图中无向图中,从顶点从顶点v1到顶点到顶点v2有路径有路径,则称顶点则称顶点v1与与v2是连通的。是连通的。r若图中任意一对顶点都是连通的若图中任意一对顶点都是连通的,则此图是连通图则此图是连通图r非连通图的极大连通子图叫连通分量非连通图的极大连通子图叫连通分量821304连通图连通图521304非连通图非连通图(有有2个连通分量个连通分量)5图的基本概念图的基本概念
6、n强连通图与强连通分量强连通图与强连通分量r在有向图中在有向图中,若对于每一对顶点若对于每一对顶点vi和和vj,都存在一条都存在一条从从vi到到vj和从和从vj到到vi的路径的路径,则称此图是强连通图则称此图是强连通图r非强连通图的极大强连通子图叫做强连通分量非强连通图的极大强连通子图叫做强连通分量n生成树生成树r一个连通图的生成树是其极小连通子图,在一个连通图的生成树是其极小连通子图,在 n 个个顶点的情形下,有顶点的情形下,有n-1条边。条边。9图的存储表示图的存储表示n邻接矩阵邻接矩阵r一个有一个有 n 个顶点的图个顶点的图G=(V,E),图的邻接矩阵图的邻接矩阵是一个二维数组是一个二维
7、数组 A.edgenn10120有向图的邻接矩阵可能不对称有向图的邻接矩阵可能不对称2130否则否则若若,0),(1EdgeEjiji000101010Edge0101101001011010Edge无向图的邻接矩阵是对称的无向图的邻接矩阵是对称的图的存储表示图的存储表示n邻接矩阵邻接矩阵r网络网络(带权图带权图)的邻接矩阵的邻接矩阵11jiji,jiji,jijiWji若若且或且或若若且或且或若若,)(,)(),(0EEEdge068053290410Edge321086395214图的存储表示图的存储表示n邻接表邻接表r无向图的邻接表无向图的邻接表12DBCA12 0 03 CBDA1 2
8、130data linkdest linkdest linkdest保存的是邻接顶点的下标保存的是邻接顶点的下标顶点数组顶点数组链接结点链接结点图的存储表示图的存储表示n邻接表邻接表r有向图的邻接表和逆邻接表有向图的邻接表和逆邻接表131 02 C BA210data linkdest linkBCA1 0 2 CBA210data linkdest linkdest link邻接表邻接表(出边表出边表)逆邻接表逆邻接表(入边表入边表)图的存储表示图的存储表示n网络网络(带权图带权图)的邻接表的邻接表14邻接表邻接表(出边表出边表)CDBA86395214CBDA2130data linkco
9、st link306 322114 2destcost linkdest9 3518 2图的遍历图的遍历n从给定顶点出发,沿某些边遍历图中所有顶点从给定顶点出发,沿某些边遍历图中所有顶点一次且仅一次一次且仅一次n使用辅助数组使用辅助数组visited 标识顶点是否被访问过标识顶点是否被访问过rvisited 初始为初始为0r访问过后标识为访问过后标识为115图的遍历图的遍历n遍历方式遍历方式r深度优先遍历深度优先遍历 DFS(Depth First Search)r广度优先遍历广度优先遍历 BFS(Breadth First Search)16图的遍历图的遍历n遍历方式遍历方式r深度优先遍历深
10、度优先遍历 DFS(Depth First Search)从顶点从顶点v1出发,访问任一未被访问的邻接顶点出发,访问任一未被访问的邻接顶点v2;再从顶点再从顶点v2出发,访问任一未被访问的邻接顶点出发,访问任一未被访问的邻接顶点v3;再从顶点再从顶点v3出发,出发,如此进行下去,直到所有邻接,如此进行下去,直到所有邻接顶点都被访问过为止顶点都被访问过为止退回一步到刚被访问的顶点,看是否有未被访问的邻退回一步到刚被访问的顶点,看是否有未被访问的邻接顶点。接顶点。若有,则继续访问否则,再退回一步直到所有顶点都被访问直到所有顶点都被访问17图的遍历图的遍历n遍历方式遍历方式r深度优先遍历深度优先遍历
11、 DFS(Depth First Search)18前进前进回退回退深度优先搜索过程深度优先搜索过程深度优先生成树深度优先生成树ABEDCGFHI123456789ABEDCGFHI123456789图的遍历图的遍历n遍历方式遍历方式r广度优先遍历广度优先遍历 BFS(Breadth First Search)从起始顶点从起始顶点v出发,依次访问出发,依次访问v的未被访问的邻接顶点的未被访问的邻接顶点w1,w2,wm顺序访问顺序访问w1,w2,wm的所有未被访问的邻接顶点的所有未被访问的邻接顶点,以此类推,直到所有顶点都被访问以此类推,直到所有顶点都被访问19图的遍历图的遍历n遍历方式遍历方式
12、r广度优先遍历广度优先遍历 BFS(Breadth First Search)20广度优先搜索过程广度优先搜索过程广度优先生成树广度优先生成树ABEDCGFHI125736489ABEDCGFHI12553648921作业:作业:n个顶点无向图,邻接矩阵形式存储在矩阵个顶点无向图,邻接矩阵形式存储在矩阵EdgeNN,用用visited记录是否访问过,初始时记录是否访问过,初始时visitedN=0写出深度优先遍历程序:写出深度优先遍历程序:DFS(0,Edge)写出广度优先遍历程序:写出广度优先遍历程序:BFS(0,Edge)图的遍历图的遍历n遍历方式遍历方式r深度优先遍历深度优先遍历 DFS
13、(Depth First Search)回溯算法回溯算法r广度优先遍历广度优先遍历 BFS(Breadth First Search)分层算法分层算法22图的连通性图的连通性n当无向图不连通时,从顶点当无向图不连通时,从顶点v出发,遍历方法出发,遍历方法只能遍历只能遍历v所在连通分量上的所有顶点所在连通分量上的所有顶点23ACDEGBFHKJLIACDEGBFHKJLI非连通无向图非连通无向图一种遍历生成森林一种遍历生成森林图的连通性图的连通性n强连通有向图强连通有向图r不同出发点得到生成树不同不同出发点得到生成树不同24ACDEBFACDEBF123465ACDEBF516243234516
14、ACDEBF非强连通图非强连通图图的连通性图的连通性n非强连通有向图非强连通有向图r遍历可能生成的不是树,而是森林遍历可能生成的不是树,而是森林25345ACB21DEACDEB生成森林生成森林ACDEB生成树生成树12354非强连通图非强连通图D,E不能到达不能到达A,B,C但但A,B,C可到达可到达D,E最小生成树最小生成树n在连通带权图上构造一棵生成树,使得该树上在连通带权图上构造一棵生成树,使得该树上边权值的总和最小边权值的总和最小r连通带权图连通带权图r生成树生成树(n个顶点,个顶点,n-1条边,无回路条边,无回路)r边的权值总和最小边的权值总和最小26最小生成树最小生成树n克鲁斯卡
15、尔克鲁斯卡尔(Kruskal)算法算法r初始时所有顶点自成一连通分量初始时所有顶点自成一连通分量r在图上选权值最小的边在图上选权值最小的边emin,判断,判断emin两端点是否两端点是否属于不同连通分量属于不同连通分量ci,cj若是,将若是,将ci,cj用用emin连接成同一个连通分量连接成同一个连通分量否则,舍弃否则,舍弃eminr重复上一过程,直到所有顶点在同一连通分量重复上一过程,直到所有顶点在同一连通分量27最小生成树最小生成树n克鲁斯卡尔克鲁斯卡尔(Kruskal)算法算法28285046132102514242216181250461325046132105046132101250
16、46132101412504613210141612504613210142216125046132102514221612最小生成树最小生成树n克鲁斯卡尔克鲁斯卡尔(Kruskal)算法算法r经常需要判断权值最小的边的两端是否属于不同经常需要判断权值最小的边的两端是否属于不同连通分量连通分量可使用并查集技术加快判断速度可使用并查集技术加快判断速度292850461321025142422161812504613210(0,5)12(2,3)14(1,6)16(1,2)18(3,6)22(3,4)24(4,6)25(4,5)初始时初始时最小生成树最小生成树n克鲁斯卡尔克鲁斯卡尔(Kruskal
17、)算法算法r经常需要判断权值最小的边的两端是否属于不同经常需要判断权值最小的边的两端是否属于不同连通分量连通分量可使用并查集技术加快判断速度可使用并查集技术加快判断速度30285046132102514242216181210(0,5)12(2,3)14(1,6)16(1,2)18(3,6)22(3,4)24(4,6)25(4,5)5046132取边取边(0,5)最小生成树最小生成树n克鲁斯卡尔克鲁斯卡尔(Kruskal)算法算法r经常需要判断权值最小的边的两端是否属于不同经常需要判断权值最小的边的两端是否属于不同连通分量连通分量可使用并查集技术加快判断速度可使用并查集技术加快判断速度3110
18、(0,5)12(2,3)14(1,6)16(1,2)18(3,6)22(3,4)24(4,6)25(4,5)取边取边(2,3)50631422850461321025142422161812最小生成树最小生成树n克鲁斯卡尔克鲁斯卡尔(Kruskal)算法算法r经常需要判断权值最小的边的两端是否属于不同经常需要判断权值最小的边的两端是否属于不同连通分量连通分量可使用并查集技术加快判断速度可使用并查集技术加快判断速度3210(0,5)12(2,3)14(1,6)16(1,2)18(3,6)22(3,4)24(4,6)25(4,5)取边取边(1,6)5063142285046132102514242
展开阅读全文