数据结构(四).ppt
《数据结构(四).ppt》由会员分享,可在线阅读,更多相关《数据结构(四).ppt(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据结构(四)数据结构(四)图型结构图型结构 图的概念图的概念图(图(graph)是图型结构的简称。它是一种)是图型结构的简称。它是一种复杂的非线性数据结构。图在各个领域都复杂的非线性数据结构。图在各个领域都着广泛的应用。图的二元组定义为:着广泛的应用。图的二元组定义为:G=(V,E)其中其中V是非空的顶点集合,即是非空的顶点集合,即 V=vi|1=i=1,vi elemtype,n 为顶点数为顶点数图的基本术语图的基本术语 1、端点和邻接点、端点和邻接点 在一个无向图中,若存在在一个无向图中,若存在条边(条边(vi,vj),则称),则称vi,vj为此边的两个端点,并称它们互为邻接点为此边的两
2、个端点,并称它们互为邻接点(adjacent),即),即vi是是vj的一个邻接点,的一个邻接点,vj也是也是vi的一个邻接点。的一个邻接点。在一个有向图中,若存在一条边在一个有向图中,若存在一条边,则称此,则称此边是顶点边是顶点vi的一条出边(的一条出边(outedge),顶点),顶点vj的一的一条入边(条入边(inedge););称称Vi为此边的起始端点,简为此边的起始端点,简称起点或始点,称起点或始点,vj为此边的终止端点,简称终点;为此边的终止端点,简称终点;称称vi和和vj互为邻接点,并称互为邻接点,并称vj是是vi的出边邻接点,的出边邻接点,vi是是vj的入边邻接点。的入边邻接点。2
3、、顶点的度、入度、出度顶点的度、入度、出度 无向图顶点无向图顶点v的度(的度(degree)定义为以)定义为以该顶点为一个端点的边的数目,简单地说,该顶点为一个端点的边的数目,简单地说,就是该顶点的边的数目,记为就是该顶点的边的数目,记为D(v)。如)。如图图71的的G1中中v1顶点的度为顶点的度为4,v2顶点的度顶点的度为为2。有向图中顶点。有向图中顶点v的度有入度和出度之分,的度有入度和出度之分,入度(入度(indegree)是该顶点的入边的数目,)是该顶点的入边的数目,记为记为ID(v);出度();出度(outdegree)是该顶)是该顶点的出边的数目,记为点的出边的数目,记为OD(v)
4、顶点)顶点v的度的度等于它的入度和出度之和,即等于它的入度和出度之和,即D(v)=ID(v)+OD(v)。)。3、完全图、稠密图、稀疏图、完全图、稠密图、稀疏图 若无向图中的每两个顶点之间都存在着若无向图中的每两个顶点之间都存在着一条边,有向图中的每两个顶点之间都存在一条边,有向图中的每两个顶点之间都存在着方向相反的两条边,则称此图为完全图。着方向相反的两条边,则称此图为完全图。显然,若完全图是无向的,则图中包含有显然,若完全图是无向的,则图中包含有n(n1)/2条边条边,若完全图是有向的,则图若完全图是有向的,则图中包含有中包含有n(n1)条边。当一个图接近完全)条边。当一个图接近完全图时,
5、则可称为稠密图,相反地,当一个图图时,则可称为稠密图,相反地,当一个图有较少的边数(即有较少的边数(即e n(n 1)时,则)时,则可称为稀疏图。可称为稀疏图。4、子图子图 设有两个图设有两个图G=(V,E)和)和G (V,E),若若V是是V的子集,且的子集,且E是是E的子集,则的子集,则成成G是是G的子图。的子图。5、路径和回路、路径和回路 在一个图在一个图G中,从顶点中,从顶点v到顶点到顶点v的一条路径的一条路径(path)是一个顶点序列)是一个顶点序列vi0,vi1,vi2,vim,其中其中v=vi0,v=vim,若此图是无向图,则(若此图是无向图,则(vij1,vij)E(G),(),
6、(1jm);若此图是有向图,);若此图是有向图,则则E(G),(),(1jm)。路径长度)。路径长度是指该路径上经过的边的数目。若一条路径上除是指该路径上经过的边的数目。若一条路径上除了前后端点可以相同外,所有顶点均不同,则称了前后端点可以相同外,所有顶点均不同,则称此路径为简单路径。若一条路径上的前后两端点此路径为简单路径。若一条路径上的前后两端点相同,则被称为回路或环(相同,则被称为回路或环(cycle),前后两端点),前后两端点相同的简单路径被称为简单回路或简单环相同的简单路径被称为简单回路或简单环。6、连通和连通分量、连通和连通分量 在无向图在无向图G中,若从顶点中,若从顶点vi到顶点
7、到顶点vj有路径,则称有路径,则称vi和和vj是连通的。若图是连通的。若图G中任意两个顶点都连通,则称中任意两个顶点都连通,则称G为连为连通图,否则称为非连通图。无向图通图,否则称为非连通图。无向图G的的极大连通子图称为极大连通子图称为G的连通分量。显然,的连通分量。显然,任何连通图的连通分量只有一个,即本任何连通图的连通分量只有一个,即本身,而非连通图有多个连通分量。身,而非连通图有多个连通分量。7、强连通图和强连通分量、强连通图和强连通分量 在有向图在有向图G中,若从顶点中,若从顶点vi到顶点到顶点vj有路径,则称从有路径,则称从vi到到vj是连通的。若图是连通的。若图G中的任意两个顶点中
8、的任意两个顶点vi和和vj都连通,即都连通,即从从vi到到vj和从和从vj到到vi都存在路径,则称都存在路径,则称G是强连通图。有向图是强连通图。有向图G的极大强连通子的极大强连通子图称为图称为G的强连通分量。显然,强连通的强连通分量。显然,强连通图只有一个强连通分量,即本身,非强图只有一个强连通分量,即本身,非强连通图有多个强连通分量。连通图有多个强连通分量。8、权和网、权和网 在一个图中每条边可以标上具有某种在一个图中每条边可以标上具有某种含义的数值,此数值称为该边的权含义的数值,此数值称为该边的权(weight)。例如,对于一个反映城市交)。例如,对于一个反映城市交通线路的图,边上的权可
9、表示该条线路的长通线路的图,边上的权可表示该条线路的长度或等级;对于一个反映电子线路的图,边度或等级;对于一个反映电子线路的图,边上的权可表示两端点间的电阻、电流或电压;上的权可表示两端点间的电阻、电流或电压;对于一个反映零件装配的图,边上的权可表对于一个反映零件装配的图,边上的权可表示一个端点需要装配另一个端点的零件的数示一个端点需要装配另一个端点的零件的数量;对于一个反映工程进度的图,边上的权量;对于一个反映工程进度的图,边上的权可表示从前一子工程到后一子工程所需要的可表示从前一子工程到后一子工程所需要的天数。边上带有权的图称作带权图,也常称天数。边上带有权的图称作带权图,也常称作网(作网
10、(network)。)。图的存储结构图的存储结构 1、邻接矩阵邻接矩阵 邻接矩阵(邻接矩阵(adjacency matrix)是表示顶点)是表示顶点之间相邻关系的矩阵。设之间相邻关系的矩阵。设G(V,E)是具)是具有有n个顶点的图,顶点序号依次为个顶点的图,顶点序号依次为1、2、n,则,则G的邻接矩阵是具有如下定义的邻接矩阵是具有如下定义的的n阶方阵。阶方阵。2、邻接表邻接表 邻接表(邻接表(adjacency list)是对图中的)是对图中的每个顶点建立一个邻接关系的单链表,并把每个顶点建立一个邻接关系的单链表,并把它们的表头指针用向量存储的一种图的表示它们的表头指针用向量存储的一种图的表示
11、方法。为顶点方法。为顶点vi建立的邻接关系的单链表又建立的邻接关系的单链表又称作称作vi的邻接表。的邻接表。vi邻接表中的每个结点用邻接表中的每个结点用来存储以该顶点为端点或起点的一条边的信来存储以该顶点为端点或起点的一条边的信息,因而被称为边结点。息,因而被称为边结点。vi邻接表中的结点邻接表中的结点数,对于无向图来说,等于数,对于无向图来说,等于vi的边数,邻接的边数,邻接点数或度数;对于有向图来说,等于点数或度数;对于有向图来说,等于vi的出的出边数、出边邻接点数或出度数。边数、出边邻接点数或出度数。3、边集数组边集数组 边集数组(边集数组(edgeset array)是利用一维)是利用
12、一维数组存储图中所有边的一种图的表示方法。数组存储图中所有边的一种图的表示方法。该数组中所含元素的个数要大于等于图中边该数组中所含元素的个数要大于等于图中边的条数,每个元素用来存储一条边的起点、的条数,每个元素用来存储一条边的起点、终点(对于无向图,可选定边的任一端点为终点(对于无向图,可选定边的任一端点为起点或终点)和权(若有的话),下各边在起点或终点)和权(若有的话),下各边在数组中的次序可任意安排,也可根据具体要数组中的次序可任意安排,也可根据具体要求而定。求而定。图的遍历图的遍历 1、深度优先遍历深度优先遍历 深度优先搜索(深度优先搜索(depth first search)遍历类)遍
13、历类似树的先根遍历,它是一个递归过程,可叙述为:似树的先根遍历,它是一个递归过程,可叙述为:首先访问一个顶点首先访问一个顶点vi(开始为初始点),并将其(开始为初始点),并将其标记为已访问过,然后从标记为已访问过,然后从vi的一个未被访问的邻的一个未被访问的邻接点(无向图)或出边邻接点(有向图)出发进接点(无向图)或出边邻接点(有向图)出发进行深度优先搜索遍历,当行深度优先搜索遍历,当vi的所有邻接点均被访的所有邻接点均被访问过时,则退回到上一个顶点问过时,则退回到上一个顶点vk,从,从vk的另一个的另一个未被访问过的邻接点出发进行深度优先搜索遍历。未被访问过的邻接点出发进行深度优先搜索遍历。
14、2、广度优先搜索遍历、广度优先搜索遍历 广度优先搜索(广度优先搜索(breadthfirst search)遍历类似树的按层遍历,其过程)遍历类似树的按层遍历,其过程为:首先访问初始点为:首先访问初始点vi,并将其标记为已访并将其标记为已访问过,接着访问问过,接着访问vi的所有未被访问过的邻接的所有未被访问过的邻接点点vi1,vi2,vit并均标记为已访问过,然并均标记为已访问过,然后再按照后再按照vi1,vi2,vit的次序,访问每一的次序,访问每一个顶点的所有未被访问过的邻接点,并均标个顶点的所有未被访问过的邻接点,并均标记为已访问过,依次类推,直到图中所有和记为已访问过,依次类推,直到图
15、中所有和初始点初始点vi有路径相通的顶点都被访问过为止。有路径相通的顶点都被访问过为止。非连通图的遍历非连通图的遍历 前面提到的深度优先遍历和广度优先遍前面提到的深度优先遍历和广度优先遍历都只从图的一个顶点开始进行一次遍历,历都只从图的一个顶点开始进行一次遍历,对于连通图可以遍历到图的所有结点,但对于连通图可以遍历到图的所有结点,但如果图不连通,则有一部分结点无法访问如果图不连通,则有一部分结点无法访问到。修改很简单,每次选取任意一个没有到。修改很简单,每次选取任意一个没有被遍历过的结点开始一次遍历,重复此操被遍历过的结点开始一次遍历,重复此操作直到遍历完图的所有结点即可。作直到遍历完图的所有
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构
限制150内