数据结构课件 第七章 图.pptVIP

  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文档。上传文档
查看更多
数据结构课件 第七章 图

第六章 图 第六章 图 6.1.1 图的基本概念 6.1.1 图的基本概念 6.1.1图的基本概念 6.1.1 图的基本概念 证明无向图的最大边数: 6.1.1 的基本概念 证明有向图的最大边数: 6.1.1 图的基本概念 6.1.1 图的基本概念 6.1.1 图的基本概念 6.1.1 图的基本概念 6.1.1 图的基本概念 6.1.1 图的基本概念 6.1.1 图的基本概念 6.2 图的存储结构 6.2.1 邻接矩阵 1. 有向图的邻接矩阵 具有n个顶点的有向图可以用一个n?n的方形矩阵表示。假设该矩阵的名称为M,则当vi,vj是该有向图中的一条弧时,M[i,j]=1;否则M[i,j]=0。第i个顶点的出度为矩阵中第i行中“1”的个数;入度为第i列中“1”的个数,并且有向图弧的条数等于矩阵中“1”的个数。 1.2 无向图的邻接矩阵 具有n个顶点的无向图也可以用一个n?n的方形矩阵表示。假设该矩阵的名称为M,则当(vi,vj)是该无向图中的一条边时,M[i,j]=M[j,i]=1;否则,M[i,j]=M[j,j]=0。第i个顶点的度为矩阵中第i?行中“1”的个数或第i列中“1”的个数。图中边的数目等于矩阵中“1”的个数的一半,这是因为每条边在矩阵中描述了两次。 图 6-4 图 6-5 在C 语言中,实现邻接矩阵表示法的类型定义如下所示: #define MaxVertexNum 100 /*最大顶点数设为100*/ typedef char VertexType; /*顶点类型设为字符型*/ typedef int EdgeType; /*边的权值设为整型*/ typedef struct { VertexType vexs[MaxVertexNum]; /*顶点表*/ EdgeType edges[MaxVertexNum][MaxVertexNum]; /*邻接矩阵,即边表*/ int n,e; /*顶点数和边数*/ }Mgragh; /*Maragh是以邻接矩阵存储的图类型*/ 建立一个图的邻接矩阵存储的算法如下: void CreateMGraph(MGraph *G) {/*建立有向图G的邻接矩阵存储*/ int i,j,k,w; char ch; printf(请输入顶点数和边数(输入格式为:顶点数,边数):\n); scanf(%d,%d,(G-n),(G-e));/*输入顶点数和边数*/ printf(请输入顶点信息(输入格式为:顶点号CR):\n); 6.2.2 邻接表 边结点的结构为: 图 6-6 Vertex 是顶点内容,firstedge是指向第一条边或弧结点的指针。 在C语言中,实现邻接表表示法的类型定义如下所示: 邻接表表示的形式描述如下: #define MaxVerNum 100 /*最大顶点数为100*/ typedef struct node{ /*边表结点*/ int adjvex; /*邻接点域*/ struct node * next; /*指向下一个邻接点的指针域*/ /*若要表示边上信息,则应增加一个数据域info*/ }EdgeNode; typedef struct vnode{ /*顶点表结点*/ VertexType vertex; /*顶点域*/ EdgeNode * firstedge; /*边表头指针*/ }VertexNode; 6.3 图的遍历 常见的图遍历方式有两种:深度优先遍历和广度优先遍历,这两种遍历方式对有向图和无向图均适用。 6.3.1 深度优先遍历 深度优先遍历的思想类似于树的先序遍历。其遍历过程可以描述为:从图中某个顶点v出发,访问该顶点,然后依次从v的未被访问的邻接点出发继续深度优先遍历图中的其余顶点,直至图中所有与v有路径相通的顶点都被访问完为止。 下面我们讨论一下如何实现深度优先算法。

文档评论(0)

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

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

1亿VIP精品文档

相关文档