- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六章 图 可见,按照习惯说法,图是一种对结点的前趋和后继个数 不加限制的数据结构。 邻接点(adjacent) 对于无向图,如果边(v,u)?E,则v和u互为邻接点,亦即u 是v的邻接点,v也是u的邻接点。 对于有向图,如果弧v,u?E,则u是v的邻接点。 顶点的度(vertex degree)——用TD(V)表示 在无向图中,顶点的度就是以该顶点为一个端点的边的条数。 在有向图中,顶点的度分成入度与出度 入度(in-degree) 以该顶点为弧头的弧的数目,常用ID(V)表示。 出度(out-degree) 以该顶点为弧尾的弧的数目,常用OD(V)表示。 有向图顶点的度是此顶点的入度与出度之和,即 TD(V)=ID(V)+ OD(V)。 权(weight)——与图的边或弧相关的数据,称为权。 网络(netwoke)——如果图G(V,E)中,每条边都赋有反 映这条边的某种特性的数据,则称此图是一个网络。 有向完备图(directed complete graph)——n个顶点的 有向图最大边数是n(n-1)。 无向完备图(undirected complete graph)——n个顶点 的无向图最大边数是n(n-1)/2。 6.2 图的存储结构 图的存储结构有多种表示法,本节只讨论邻接矩 阵表示法和邻接表表示法。 邻接矩阵(adjacency matrix)表示法 用表示顶点间相联关系的矩阵,称为邻接矩阵。 根据图的定义可知,一个图的逻辑结构的说明分 为两部分:第一部分是组成图的顶点集合V ;第二部 分是顶点之间的联系,即顶点偶对集合 E。因此,对 一个图的计算机表示只要分别解决集合V和集合E的存 储表示即可。 显然,集合V 中的所有顶点可以利用一个一维数 组表示;而集合E 用一个二维数组来表示。此二维数 组称其为邻接矩阵。邻接矩阵反映了图中各顶点之 间的相邻关系。 定义:设G=(V,E)是有n?1个顶点的有向图/无向 图,则G的邻接矩阵A是具有以下性质的 n 阶方阵: 特点: 无向图的邻接矩阵对称,可压缩存储;有n个 顶点的无向图需存储空间为n(n+1)/2 有向图邻接矩阵不一定对称;有n个顶点的有 向图需存储空间为n2 动态地产生,则每增加或删除一个顶点都需要改变邻接矩阵 的大小,显然,这样做效率是很低的。除此之外,邻接矩阵 占用的存储单元数只与图的顶点个数有关,而与弧的数量无 关。若图的邻接矩阵是一个稀疏矩阵,必然会造成存储空间 的大量浪费。 邻接表是图的链式存储结构。在邻接表中,对图中每个 顶点建立一个单链表,第 i个单链表中的结点包含顶点i的所 有邻接顶点。这样,邻接表中,每个结点由三个域组成: 6.3 图的遍历 图的遍历与树的遍历类似,它的遍历也是从某个顶点出发,沿着某条搜索路径对图中所有顶点各一次访问。若给顶的图是连通图,则从图中意顶点出发顺着边可以访问到该图中所有的顶点。然而,图的遍历比树的遍历复杂得多,这是因为图中的任一顶点都可能和其他点相邻接,故在访问了某个顶点之后,可能顺着某条回路又回到了该顶点。为了避免重复访问同一个顶点,必须记住每个顶点是否被访问过。为此,可设置一个标志向visited[1…n],以便说明哪些顶点被访问了。 根据搜索路径的方向不同,有两种常的遍历图的方法:深度优先搜索遍历和广度优先搜索遍历。 [算法24]深度优先遍历算法 递归算法 注:V0,w均是顶点的编号*/ V1 V2 V4 V5 V3 V7 V6 V8 例 深度遍历:V1? 1 2 3 4 v1 v3 v4 v2 2 7 8 3 ^ ^ ^ 5 v5 6 4 1 ^ 5 1 2 8 2 ^ v6 v7 v8 6 7 8 7 3 6 3 5 4 ^ ^ ^ V3 ? V7 ? V6 ? V2 ? V5 ? V8 ? V4 V1 V2 V4 V5 V3 V7 V6 V8 例 1 2 3 4 v1 v3 v4 v2 2 7 8 3 ^ ^ ^ 5 v5 6 ^ 4 8 2 ^ v6 v7 v8 6 7 8 7 ^ ^ ^ 深度遍历:V1? V3 ? V7 ? V6 ? V2 ? V5 ? V8 ? V4 2.广度优先遍历(BFS) 广度优先搜索(BFS ---- Breadth-First Search) 遍历类似于树的按层次遍历。假定给定图G的初始状态 是所有顶点均
文档评论(0)