数据结构(C语言版) 高佳琴 第7章 图及其应用.pptVIP

数据结构(C语言版) 高佳琴 第7章 图及其应用.ppt

  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文档。上传文档
查看更多
第七章 图及其应用 董卫红 2014年 2月 7日 本章要点 图的定义、相关术语及图的逻辑结构。 图的存储结构。 图的遍历方法。 最小生成树。 最短路径。 拓扑排序。 7.1 “最小代价通信网”案例导入 “最小代价通信网”引例:已知存在6个城镇,用v1,v2,v3,v4,v5,v6表示,连接6个城镇的公路交通图如图7-1所示。现要求沿公路架设6个城镇的光缆线,以满足通信要求,即任意两个城镇之间都有直接或者间接的通信线路,已知每两个城镇之间的通信线路的造价(图7-1中边上的数值表示造价),请设计出通信网络方案,满足总造价最低。 图7-1 6个城镇的公路交通图 思考:1.如何保证光缆线路通畅。 2.如何节省成本。 7.2 图的概念和术语 7.2.1 图的定义及其逻辑结构。 图是由结点的有穷集合V和边的集合E组成,可形式化定义为G=(V,E) 其中 V={vi|vi∈dataobject} E={vi,vj或(vi,vj)|vi,vj∈V且P(vi,vj)} 【例7-1】有向图G1的逻辑结构为:G1=(V1,E1) V1={v1,v2,v3,v4},E1={v1,v2,v2,v3,v2,v4,v3,v4,v4,v1,v4,v3} 【例7-2】无向图G2的逻辑结构为:G2=V2,E2 V2={v1,v2,v3,v4,v5},E2={(v1,v2),(v1,v3),(v1,v4),(v2,v4),(v2,v5),(v3,v5),(v4,v5)} 常用类似图7-2(a)、7-2(b)的形式直观地表示图的逻辑结构。 (a)有向图G1 (b)无向图G2 图7-2 图的逻辑结构示意图 7.2.2 图的相关术语 1.有向图与无向图 2.完全图 (1)有向完全图 (2)无向完全图 3.顶点的度 4.路径、路径长度、回路、简单路径 5.子图 6.连通、连通图、连通分量 7.边的权和网 8.生成树 7.2.3 图的基本操作 1.创建一个图结构 CreateGraph(G)。 2.深度优先遍历图 DFSTraverse(G,v)。 3.广度优先遍历图 BFSTraverse(G,v)。 4.顶点定位 LocateVex(G,v)。 5.求图中第i个顶点 GetVex(G,i)。 6.求第一个邻接点FirstAdjVex(G,v)。 7.求下一个邻接点NextAdjVex(G,v,w)。 7.3 图的存储结构 7.3.1 邻接矩阵 1.有向图的邻接矩阵 假设该矩阵的名称为M,则当vi,vj是该有向图中的一条弧时,M[i][j]=1;否则M[i][j]=0。 2.无向图的邻接矩阵 假设该矩阵的名称为M,则当(vi,vj)是该无向图中的一条边时,M[i][j]= M[j][i]=1;否则,M[i][j]= M[j][i]=0。由于在任何情况下,M[i][j]和M[i][j]都相等,所以无向图的邻接矩阵必然是对称矩阵。 【例7-5】画出如图7-2所示的有向图G1和无向图G2表示顶点相邻关系的邻接矩阵。 图7-6 图7-2所示的G1与G2与相应的邻接矩阵 7.3.1 邻接矩阵 3.网的邻接矩阵 1.有向网的邻接矩阵 2.无向网的邻接矩阵 【例7-6】画出如图7-4所示的无向网G3顶点相邻关系的邻接矩阵。 图7-7 图7-4所示网的邻接矩阵 7.3.1 邻接矩阵 4.图的邻接矩阵存储方法的特点 1)无向图的邻接矩阵一定是对称的,而有向图的邻接矩阵则不一定对称。因此,用邻接矩阵来表示一个具有n个顶点的有向图时需要n2个存储单元来存储;而对于具有n个顶点的无向图则只需存入其上(下)三角形,故只需n(n+1)/2个存储单元来存储。邻接矩阵表示法的空间复杂度为O(n2)。 2)用邻接矩阵方法存储图,很容易确定图中任意两个顶点之间是否有边相连。但是,如果要确定图中有多少条边,则必须按照行、列对每个元素进行检查,所花费的时间代价很大,这是用邻接矩阵存储图的局限性。 7.3.1 邻接矩阵 5.建立无向图的邻接矩阵的算法 (1)输入图的顶点数和边数。 (2)输入顶点的字符信息,建立顶点数组。 (3)初始化邻接矩阵。 (4)输入边的信息,建立图的邻接矩阵。 7.3.2 邻接表 1.邻接表的定义及其表示形式 对于图G,使用链表结构存储边的信息,链表的结构是对于每一个顶点vi,将与其相邻的所有顶点链接成一个单链表,这个单链表就称为顶点vi的邻接链表,单链表的结点形式如图7-8(b)所示。 另外使用一个一维数

您可能关注的文档

文档评论(0)

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

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档