最新图的基本概念及拓扑排序PPT课件.ppt
《最新图的基本概念及拓扑排序PPT课件.ppt》由会员分享,可在线阅读,更多相关《最新图的基本概念及拓扑排序PPT课件.ppt(54页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、图的基本概念及拓扑排序图的基本概念及拓扑排序什么是图?o 什么是图?可用一句话概括,即:图是用点和线来刻划离散事物集合中的每对事物间以某种方式相联系的数学模型.因为它显得太抽象,不便于理解,所以有必要给出另外的回答. 简单路径:路径上各顶点路径上各顶点 v v1 1,v,v2 2,.,v,.,vm m 均不互相重复。均不互相重复。回 路:例:例:若路径上第一个顶点若路径上第一个顶点 v v1 1 与最后一个顶点与最后一个顶点v vm m 重合,重合,则称这样的路径为则称这样的路径为回路或环回路或环。图的数学表示o 点: 用整数0, 1, 2, , V-1表示o 边: 用无序数对(u, v)表示
2、, 或者表示成u-v7.2 7.2 图的存储结构图的存储结构重点介绍:重点介绍:o 主要有下面四种方法:o 邻接矩阵o 邻接表o 十字链表o 多重链表一、邻接矩阵(数组)表示法一、邻接矩阵(数组)表示法 , ),( , , .否否则则或或者者如如果果01AEjiEjijiEdge1235v4 4AA.Edge =( 1 2 3 4 5 )123450 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 1 0 1 01 0 1 0 10 1 0 1 11 0 1 0 10 1 1 1 00 1 0 1 01 0 1 0 10 1 0 1 11 0 1 0
3、10 1 1 1 0例例2 :有向图的邻接矩阵有向图的邻接矩阵v1v2v3v4邻接矩阵:A.Edge =( v1 v2 v3 v4 )v1v2v3v40 0 0 00 0 0 0 0 0 0 0 0 0 0 0 注:注:在有向图的邻接矩阵中,在有向图的邻接矩阵中, 第第i i行含义:以结点行含义:以结点v vi i为起点的边为起点的边( (即出边);即出边); 第第i i列含义:以结点列含义:以结点v vi i为终点的弧为终点的弧( (即入边)。即入边)。顶点表:0 1 1 00 0 0 0 0 0 0 1 1 0 0 0 0 1 1 00 0 0 0 0 0 0 1 1 0 0 0 特别讨论
4、特别讨论 :网(即有权图)的邻接矩阵网(即有权图)的邻接矩阵定义为:定义为: A.Edge i j =Wij 或(或(vi, vj)VR 无边(弧)无边(弧)v1v2v3v4Nv5v65489755613以有向网为例:以有向网为例:邻接矩阵:N.Edge =(1 2 3 4 5 6 )顶点表: 5 7 4 8 9 5 6 5 3 1 图的邻接矩阵表示示例int adjlistmax_vex_nummax_vex_num; 说明: adjlistij 若无权图无重边则直接用0 1表示I j两点 是否直接邻接 若无权图有重边则直接用0 1.表示是I j两点之间边的个数 若有权图则用来表示I j两点
5、之间的距离 或者其他权值 二、邻接表(链式)表示法二、邻接表(链式)表示法adjvexnextarc权权值值datafirstarc邻接点域,邻接点域,表表示示v vi i一个邻接一个邻接点的位置点的位置链域,链域,指向指向vivi下一个边下一个边或弧的结点或弧的结点数据域,存数据域,存储顶点储顶点vi 的的序号序号链域,链域,指向指向单链表的第单链表的第一个结点一个结点邻接表的邻接表的缺点:缺点:邻接表的优点:邻接表的优点:空间效率高;空间效率高;容易寻找顶点的邻接点;容易寻找顶点的邻接点;一般用于稀疏图一般用于稀疏图判断两顶点间是否有边或弧,需搜索两判断两顶点间是否有边或弧,需搜索两结点对
6、应的单链表,没有邻接矩阵方便。结点对应的单链表,没有邻接矩阵方便。邻接表 邻接矩阵存储比较邻接矩阵的优点:邻接矩阵的优点:判断两顶点间是否有边或弧,可以直接判断判断两顶点间是否有边或弧,可以直接判断速度很快速度很快 一般用于存储稠密图一般用于存储稠密图邻接矩阵的邻接矩阵的缺点:缺点:存储空间大存储空间大 会影响算法的空间效率会影响算法的空间效率 甚甚至时间效率至时间效率讨论:邻接表与邻接矩阵有什么异同之处?讨论:邻接表与邻接矩阵有什么异同之处?1. 1. 联系:联系:邻接表中每个链表对应于邻接矩阵中的一行,邻接表中每个链表对应于邻接矩阵中的一行,链表中结点个数等于一行中非零元素的个数。链表中结
7、点个数等于一行中非零元素的个数。2. 2. 区别:区别: 对于任一确定的无向图,邻接矩阵是唯一的(行列对于任一确定的无向图,邻接矩阵是唯一的(行列号与顶点编号一致),但邻接表不唯一(链接次序号与顶点编号一致),但邻接表不唯一(链接次序与顶点编号无关)。与顶点编号无关)。 邻接矩阵的空间复杂度为邻接矩阵的空间复杂度为O(nO(n2 2),),而邻接表的空间复而邻接表的空间复杂度为杂度为O(n+e)O(n+e)。3. 3. 用途:用途:邻接矩阵多用于稠密图的存储(邻接矩阵多用于稠密图的存储(e e接近接近n(n-n(n-1)/2)1)/2);而邻接表多用于稀疏图的存储(;而邻接表多用于稀疏图的存储
8、(ene1. 容易证明对于任意距离值x, di=x的点一定是正确的, 而且白色点(没有计算出距离的点)的距离一定至少为x+1o 更进一步, 根据每个点的parent值, 可以计算出它到s的一条最短路Bfs算法中路径的打印Print-Path(G,s,v)o if(v=s)o then print so else if v=NILo then print “no path from ”s”to” v”exits”o else Print-path(G,s, v) print v机器人问题机器人问题o Dr.Kong是设计了一个可以前进或者后退的机器人,该机器人在每一个位置i会得到一个o移动的步数
9、指令Ki(i=1,2n),聪明的机器人会自己判断是要前进Ki步还是要后退Ki步。o 例如:给定指令序列(3,3,1,2,5),表示机器人在第一个位置时,可以前进3步到第4个位置,此时后退是不起作用的,出界:机器人在第2个位置时,可以前进3步到第5个位置,此时后退时不起作用的,出界:机器人在第3个位置的时,可以前进1步到第4个位置,也可以后退一步到第2个位置等等.o 你认为,对于给定的两个位置A,B,聪明的机器人从A位置到B位置至少需要判断几次?oinputo 第一行:M 表示以下有M组测试数据(0M=8)o 接下来每组有两行数据o 头一行:N A B(1=N=50,1=A,B=N)o 下一行:
10、K1 K2Kn(0=Kinab;ofor (int i=1;itemp;o if(i+temp=1)o argsii-temp=true;ooda=0;ovisiteda=true;oqueueq;o q.push(a);owhile(!q.empty()oo int temp=q.front();o q.pop();ofor(int i=0;i=n;i+)oo if(argstempi&!visitedi)o odi=dtemp+1;ovisitedi=true;o q.push(i);o o oocoutdbendl;二、深度优先遍历二、深度优先遍历(DFS)基本思想:基本思想:仿树的先序
11、遍历过程。仿树的先序遍历过程。Depth_First Searchv1v2v3v8v7v6v4v5起点起点起点起点遍历步骤遍历步骤深度优先搜索(遍历)步骤:深度优先搜索(遍历)步骤:详细归纳:详细归纳:E在访问图中某一起始顶点在访问图中某一起始顶点 v 后,由后,由 v 出发,访问出发,访问它的任一邻接它的任一邻接顶点顶点 w1;E再从再从 w1 出发,访问出发,访问与与 w1邻接邻接但还但还未被访问未被访问过的顶点过的顶点 w2;E然后再从然后再从 w2 出发,进行类似的访问,出发,进行类似的访问, E如此进行下去,直至到达所有的邻接顶点都被访问过的顶点如此进行下去,直至到达所有的邻接顶点都
12、被访问过的顶点 u 为止。为止。E接着,退回一步,接着,退回一步,退到前一次刚访问过的顶点退到前一次刚访问过的顶点,看是否还有,看是否还有其它没有被访问的邻接顶点。其它没有被访问的邻接顶点。 如果有,如果有,则访问此顶点,之后再从此顶点出发,进行与前述则访问此顶点,之后再从此顶点出发,进行与前述类似的访问;类似的访问; 如果没有,如果没有,就就再退回一步再退回一步进行搜索。重复上述过程,直到连进行搜索。重复上述过程,直到连通图中所有顶点都被访问过为止。通图中所有顶点都被访问过为止。简单归纳:简单归纳: 访问起始点访问起始点 v; 若若v的第的第1个邻接点没访问过,深度遍历此邻接点;个邻接点没访
13、问过,深度遍历此邻接点;若当前邻接点已访问过,再找若当前邻接点已访问过,再找v的第的第2个邻接点重新遍历。个邻接点重新遍历。基本算法o 新发现的结点先扩展o 得到的可能不是一棵树而是森林, 即深度优先森林(Depth-first forest)o 特别之处: 引入时间戳(timestamp)n 发现时间dv: 变灰的时间n 结束时间fv: 变黑的时间n 1=dv fv = 2|V|o 初始化: time为0, 所有点为白色, dfs森林为空o 对每个白色点u执行一次DFS-VISIT(u)DFS-VISIT算法o 初始化: time为0, 所有点为白色, dfs森林为空o 对每个白色点u执行一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 基本概念 拓扑 排序 PPT 课件
限制150内