图的基本概念及拓扑排序.ppt
《图的基本概念及拓扑排序.ppt》由会员分享,可在线阅读,更多相关《图的基本概念及拓扑排序.ppt(53页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、图的基本概念遍历以及拓扑排序算法什么是图?o什么是图?可用一句话概括,即:图是用点和线来刻划离散事物集合中的每对事物间以某种方式相联系的数学模型.因为它显得太抽象,不便于理解,所以有必要给出另外的回答.1 1 图的基本术语图的基本术语图:图:记为记为 G(V,E)其中:其中:V 是是G的顶点集合,是有穷非空集;的顶点集合,是有穷非空集;E 是是G的边的边集合,是有穷集。集合,是有穷集。有向图:有向图:无向图:无向图:图图G G中的每条边都是有方向的;中的每条边都是有方向的;图图G G中的每条边都是无方向的;中的每条边都是无方向的;vv若若若若 n n 个顶点的无向图有个顶点的无向图有个顶点的无
2、向图有个顶点的无向图有 n n(n n-1)/2-1)/2 条边条边条边条边,称为称为称为称为无向完全图无向完全图无向完全图无向完全图vv若若若若 n n 个顶点的有向图有个顶点的有向图有个顶点的有向图有个顶点的有向图有n(n-1)n(n-1)条边条边条边条边,称为称为称为称为有向完全图有向完全图有向完全图有向完全图V=vertex E=edge例:例:判断下列判断下列4种图形各属什么类型?种图形各属什么类型?无向无向无向图无向图(树树)有向图有向图有向有向完全图完全图完全图完全图稀疏图:稠密图:设有两个图设有两个图 G(V,E)和和 G(V,E)。若。若 V V 且且 E E,则称则称 图图
3、G 是是 图图G 的子图。的子图。子 图:边较少的图。通常边数边较少的图。通常边数n2边很多的图。无向图中,边数接近边很多的图。无向图中,边数接近n n(n n-1)/2-1)/2;有向图中,边数接近有向图中,边数接近n n(n n-1)-1)补补 图:图:定义定义1:设图:设图G1=和图和图G2=是图是图G=的子的子图图.如果如果E2=E-E1且且G2=,则称图,则称图G2是相对于图是相对于图G的子图的子图G1的补图的补图.定义定义2:给定图:给定图G=,若存在图,若存在图G1=,并且,并且E1E=和图和图是完全图,则是完全图,则G1称为相对于完全图的称为相对于完全图的G的补图,简称的补图,
4、简称G1是是G的补的补图图.带权图:带权图:即边上带权的图。其中即边上带权的图。其中权权是指每条边可以标上是指每条边可以标上具有某种含义的数值(即与边相关的数)。具有某种含义的数值(即与边相关的数)。带权图带权图网网 络:络:路径:路径:在图在图在图在图 GG(V,E)(V,E)中中中中,若从顶点若从顶点若从顶点若从顶点 vi vi 出发出发出发出发,沿一些边经过一沿一些边经过一沿一些边经过一沿一些边经过一些顶点些顶点些顶点些顶点 vp1,vp2,vpmvp1,vp2,vpm,到达顶点,到达顶点,到达顶点,到达顶点vjvj。则称顶点序列。则称顶点序列。则称顶点序列。则称顶点序列 (vi vp1
5、(vi vp1 vp2.vpm vj)vp2.vpm vj)为从顶点为从顶点为从顶点为从顶点vi vi 到顶点到顶点到顶点到顶点 vj vj 的路径。它经过的边的路径。它经过的边的路径。它经过的边的路径。它经过的边(vi,(vi,vp1)vp1)、(vp1,vp2)(vp1,vp2)、.、(vpm,vj)(vpm,vj)应当是属于应当是属于应当是属于应当是属于E E的边。的边。的边。的边。非带权图的路径长度是指此路径上非带权图的路径长度是指此路径上非带权图的路径长度是指此路径上非带权图的路径长度是指此路径上 边的条数边的条数边的条数边的条数;带权图的路径长度是指路径上带权图的路径长度是指路径上
6、带权图的路径长度是指路径上带权图的路径长度是指路径上各边的权之和各边的权之和各边的权之和各边的权之和。路径长度:路径长度:连通图:连通图:在在在在无向无向无向无向图中图中图中图中,若从顶点若从顶点若从顶点若从顶点v v1 1到顶点到顶点到顶点到顶点v v2 2有路径有路径有路径有路径,则称则称则称则称顶点顶点顶点顶点v v1 1与与与与v v2 2是是是是连通连通连通连通的。如果图中任意一对顶点的。如果图中任意一对顶点的。如果图中任意一对顶点的。如果图中任意一对顶点都是连通的都是连通的都是连通的都是连通的,则称此图是则称此图是则称此图是则称此图是连通图连通图连通图连通图。非连通图的极大连通子图
7、非连通图的极大连通子图非连通图的极大连通子图非连通图的极大连通子图叫做叫做叫做叫做连通分量连通分量连通分量连通分量。强连通图:强连通图:在在在在有向有向有向有向图中图中图中图中,若对于每一对顶点若对于每一对顶点若对于每一对顶点若对于每一对顶点v vi i和和和和v vj j,都存在一条从都存在一条从都存在一条从都存在一条从v vi i到到到到v vj j和和和和从从从从v vj j到到到到v vi i的路径的路径的路径的路径,则称此图是则称此图是则称此图是则称此图是强连通图强连通图强连通图强连通图。非强连通图的极大强连通子图非强连通图的极大强连通子图非强连通图的极大强连通子图非强连通图的极大强
8、连通子图叫做叫做叫做叫做强连通分量强连通分量强连通分量强连通分量。生成树:生成树:邻接点:顶点顶点v的度的度是与它相关联的边的条数。记作是与它相关联的边的条数。记作TD(v)。在在有向图有向图中中,顶点的度等于该顶点的顶点的度等于该顶点的入度入度与与出度出度之和。之和。顶点顶点 v 的入度的入度是以是以 v 为终点的有向边的条数为终点的有向边的条数,记作记作 ID(v);顶点顶点 v 的出度的出度是以是以 v 为始点的有向边的条数为始点的有向边的条数,记作记作 OD(v)。若若(u,v)是是 E(G)中的一条边,则称中的一条边,则称 u 与与 v 互为互为邻接顶点邻接顶点度、入度和出度:是一个
9、是一个是一个是一个极小连通子图极小连通子图极小连通子图极小连通子图,它含有图中全部顶点,但只,它含有图中全部顶点,但只,它含有图中全部顶点,但只,它含有图中全部顶点,但只有有有有n n-1-1条边条边条边条边。vv如果在生成树上添加如果在生成树上添加如果在生成树上添加如果在生成树上添加1 1条边,必定构成一个环。条边,必定构成一个环。条边,必定构成一个环。条边,必定构成一个环。vv若图中有若图中有若图中有若图中有n n个顶点,却少于个顶点,却少于个顶点,却少于个顶点,却少于n n-1-1条边,必为非连通条边,必为非连通条边,必为非连通条边,必为非连通图。图。图。图。最小生成树:最小生成树:若无
10、向连通带权图若无向连通带权图若无向连通带权图若无向连通带权图G=,TG=,T是是是是GG的一棵生成树,的一棵生成树,的一棵生成树,的一棵生成树,T T的各边权之的各边权之的各边权之的各边权之和称为和称为和称为和称为T T的权,记做的权,记做的权,记做的权,记做WW(T T),),),),GG的所有生成树中权值最小的生成树的所有生成树中权值最小的生成树的所有生成树中权值最小的生成树的所有生成树中权值最小的生成树称为最小生成树。称为最小生成树。称为最小生成树。称为最小生成树。最小生成树算法:Prim算法和算法和kruskal算法算法简单路径:路径上各顶点路径上各顶点 v v1 1,v,v2 2,.
11、,v,.,vm m 均不互相重复。均不互相重复。回 路:例:例:若路径上第一个顶点若路径上第一个顶点 v v1 1 与最后一个顶点与最后一个顶点v vm m 重合,重合,则称这样的路径为则称这样的路径为回路或环回路或环。图的数学表示o点:用整数0,1,2,V-1表示o边:用无序数对(u,v)表示,或者表示成u-v7.2 7.2 图的存储结构图的存储结构重点介绍:重点介绍:邻接矩阵邻接矩阵(数组数组)表示法表示法邻接表邻接表(链式链式)表示法表示法o主要有下面四种方法:o邻接矩阵o邻接表o十字链表o多重链表一、邻接矩阵(数组)表示法一、邻接矩阵(数组)表示法vv建立一个建立一个建立一个建立一个邻
12、接矩阵(表示各个顶点之间关系)邻接矩阵(表示各个顶点之间关系)邻接矩阵(表示各个顶点之间关系)邻接矩阵(表示各个顶点之间关系)。vv设图设图设图设图 A=(A=(V V,E E)有有有有 n n 个顶点,则图的邻接矩阵是一个二维数个顶点,则图的邻接矩阵是一个二维数个顶点,则图的邻接矩阵是一个二维数个顶点,则图的邻接矩阵是一个二维数组组组组 A.EdgennA.Edgenn,定义为:,定义为:,定义为:,定义为:1235v4 4A例例例例1 1:邻接矩阵:邻接矩阵:邻接矩阵:邻接矩阵:A.Edge=(1 2 3 4 5 )123450 0 0 0 00 0 0 0 00 0 0 0 00 0 0
13、 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 10 1 1 1 0顶点表:顶点表:顶点表:顶点表:例例2:有向图的邻接矩阵有向图的邻接矩阵v1v2v3v4A A邻接矩阵: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列含义:以结点列含
14、义:以结点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 特别讨论特别讨论:网(即有权图)的邻接矩阵网(即有权图)的邻接矩阵定义为:定义为: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_
15、vex_num;说明:adjlistij 若无权图无重边则直接用0 1表示I j两点 是否直接邻接 若无权图有重边则直接用0 1.表示是I j两点之间边的个数 若有权图则用来表示I j两点之间的距离 或者其他权值 二、邻接表(链式)表示法二、邻接表(链式)表示法vv对每个顶点对每个顶点对每个顶点对每个顶点v vi i 建立一个建立一个建立一个建立一个单链表单链表单链表单链表,把与,把与,把与,把与v vi i有关联的有关联的有关联的有关联的边边边边(即度或出(即度或出(即度或出(即度或出度边)度边)度边)度边)链接链接链接链接起来,表中每个结点都设为起来,表中每个结点都设为起来,表中每个结点都
16、设为起来,表中每个结点都设为2 2个域;个域;个域;个域;adjvexnextarc权权值值datafirstarc表结点表结点表结点表结点头结点头结点头结点头结点邻接点域,邻接点域,表表示示v vi i一个邻接一个邻接点的位置点的位置链域,链域,指向指向vivi下一个边下一个边或弧的结点或弧的结点数据域,存数据域,存储顶点储顶点vi 的的序号序号链域,链域,指向指向单链表的第单链表的第一个结点一个结点邻接表的邻接表的缺点:缺点:邻接表的优点:邻接表的优点:空间效率高;空间效率高;容易寻找顶点的邻接点;容易寻找顶点的邻接点;一般用于稀疏图一般用于稀疏图判断两顶点间是否有边或弧,需搜索两判断两顶
17、点间是否有边或弧,需搜索两结点对应的单链表,没有邻接矩阵方便。结点对应的单链表,没有邻接矩阵方便。邻接表 邻接矩阵存储比较邻接矩阵的优点:邻接矩阵的优点:判断两顶点间是否有边或弧,可以直接判断判断两顶点间是否有边或弧,可以直接判断速度很快速度很快 一般用于存储稠密图一般用于存储稠密图邻接矩阵的邻接矩阵的缺点:缺点:存储空间大存储空间大 会影响算法的空间效率会影响算法的空间效率 甚甚至时间效率至时间效率讨论:邻接表与邻接矩阵有什么异同之处?讨论:邻接表与邻接矩阵有什么异同之处?1.1.联系:联系:邻接表中每个链表对应于邻接矩阵中的一行,邻接表中每个链表对应于邻接矩阵中的一行,链表中结点个数等于一
18、行中非零元素的个数。链表中结点个数等于一行中非零元素的个数。2.2.区别:区别:对于任一确定的无向图,邻接矩阵是唯一的(行列对于任一确定的无向图,邻接矩阵是唯一的(行列号与顶点编号一致),但邻接表不唯一(链接次序号与顶点编号一致),但邻接表不唯一(链接次序与顶点编号无关)。与顶点编号无关)。邻接矩阵的空间复杂度为邻接矩阵的空间复杂度为O(nO(n2 2),),而邻接表的空间复而邻接表的空间复杂度为杂度为O(n+e)O(n+e)。3.3.用途:用途:邻接矩阵多用于稠密图的存储(邻接矩阵多用于稠密图的存储(e e接近接近n(n-n(n-1)/2)1)/2);而邻接表多用于稀疏图的存储(;而邻接表多
19、用于稀疏图的存储(ene1.容易证明对于任意距离值x,di=x的点一定是正确的,而且白色点(没有计算出距离的点)的距离一定至少为x+1o更进一步,根据每个点的parent值,可以计算出它到s的一条最短路Bfs算法中路径的打印Print-Path(G,s,v)if(v=s)then print s else if v=NIL then print“no path from”s”to”v”exits”else Print-path(G,s,v)print v机器人问题机器人问题1.Dr.Kong是设计了一个可以前进或者后退的机器人,该机器人在每一个位置i会得到一个2.移动的步数指令Ki(i=1,2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基本概念 拓扑 排序
限制150内