数据结构学习指导第7章图.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构学习指导第7章图

第七章图本章要点一、图的基本概念1. 图的定义图是图形结构的简称。它是由一个非空的顶点的集合和一个描述顶点之间的关系(边)的集合组成。记为:G=(V,E);V:顶点集(Vertexset),记为V(G);E:V中顶点偶对(边)的有穷集(Edgeset),即边集E(G)。在一个图中,若任意两个顶点之间的连线没有方向,称该图为无向图,点间连线称为边。反之称为有向图。分别用圆括号和尖括号表示,例(X,Y)、X, Y。2. 图的基本术语1) 端点和邻接点2) 顶点的度、入度和出度无向图中顶点的度是以该顶点为一个端点的数目。有向图中顶点的度D(v)=ID(v)+OD(v)。ID(v):该顶点入边的数目,即入度。OD(v):该顶点出边的数目,即出度。3) 完全图、稠密图和稀疏图若无向图的每两个顶点之间都存在着一条边,有向图中的每两个顶点之间都存在着方向相反的两条边,则此图为完全图。显然:无向完全图有n(n-1)条边,有向完全图有n(n-1)条边。当 e≈n(n-1)(或n(n-1))时,为稠密图,反之为稀疏图。4) 子图若G’=(V’,E’)与G=(V,E)存在着V’是 V的子集, E’是 E的子集关系,则称G’是G的子集。5) 路径、路径长度和回路路径:从一个顶点到另一个顶点所经过的顶点序列。路径长度:是指该路径上经过的边的数目。回路:路径上的两个端点相同。6) 连通和连通分量连通:从一个端点到另一个端点有路径,则这两个端点是连通的。连通分量:无向图G的极大连通子图称为G的连通分量。7) 强连通图和强连通分量强连通图:在有向图G中,若任意两个顶点之间都是连通的,则G是强连通图。强连通分量:G的极大强连通子图成为G的强连通分量。8) 权和网权:每条边上具有含义的数值。网:带权图。3. 图的抽象数据类型。二、图的存储结构1. 邻接矩阵方法(顺序存储)用一维数组存储图中顶点的信息,用矩阵(二维数组)表示图中各顶点之间的相邻关系。设图G=(V,E)有N个顶点,则矩阵A为一个N×N的N阶矩阵。矩阵含义和矩阵内容:P211特点:1) 无向图的邻接矩阵一定是对称矩阵。2) 有向图及其邻接矩阵是非对称矩阵。3) D(Vi)== 即顶点Vi的度恒等于第i行或第i列上非零元素的个数。第i顶点的入度=第i列非零元素的个数;第i顶点的出度=第i行非零元素的个数;4) 邻接矩阵可以方便地确定图中两顶点之间是否直接相连。5) 可用邻接矩阵表示网。类型说明:1) typedef char VertexType;//顶点元素类型2) const int MaxVertexNum=20;//不小于图的顶点数n3) const int MaxEdgeNum=10;//不小于图的边数e4) typedef VertexType vexlist[MaxVertexNum];//存储顶点信息的一维数组5) typedef int adjmatrix[MaxVertexNum][ MaxVertexNum];//存储顶点之间关系的二维数组2. 邻接表邻接表是对图中的每个顶点建立一个邻接关系的单链表。类型定义1)typedef char VertexType;//顶点元素类型2)const int MaxVertexNum=20;//不小于图的顶点数n3)const int MaxEdgeNum=10;//不小于图的边数e4)typedef VertexType vexlist[MaxVertexNum];//存储顶点信息的一维数组5) struct edgenode{int adjvex;int weight;edgenode *next;};6) typedef edgenode *adjlist[MaxVertexNum];//存储表头指针的数组3. 边集数组(主要讨论边集)边集数组是利用一维数组(多个值域)存储图中所有边的一种方法。类型定义1) typedef char VertexType;//顶点元素类型2) const int MaxVertexNum=20;//不小于图的顶点数n3) const int MaxEdgeNum=10;//不小于图的边数e4) typedef VertexType vexlist[MaxVertexNum];//存储顶点信息的一维数组5) 定义边集数组的元素类型struct edge{int fromvex;//起点域int endvex;//终点域int weight;//权};6) typedef edge edgeset[MaxEdgNum];//定义边集数组三、图的遍历1. 深度优先遍历( Depth First Sesrch)深度优先遍历类似于树的先根遍历。基本思想是首先从图中某个顶点出发,访问

文档评论(0)

xxj1658888 + 关注
实名认证
文档贡献者

教师资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档