第7节 图2--图的表示法.ppt

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 图 主要内容 7.2 图的存储结构 邻接矩阵表示法 邻接表表示法 邻接多重表 十字链表 设图 A = (V, E)是一个有 n 个顶点的图, 图的邻接矩阵是一个二维数组 A [n][n],定义: 故,图的邻接矩阵表示法也称为:数组表示法 无向图的邻接矩阵是对称的; 有向图的邻接矩阵可能是不对称的。 网的邻接矩阵 练习 1.无向图的邻接矩阵是对称矩阵,所以可采用压缩存储法(下三角),其存储空间只需_____。 2.有向图的邻接矩阵一定不是对称矩阵,对吗? 3.有向图的邻接矩阵需要______个存储空间。 在有向图中, 统计第 i 行 1 的个数可得顶点 i 的出度, 统计第 j 列 1 的个数可得顶点 j 的入度。 在无向图中, 统计第 i 行 (列) 1 的个数可得顶点i 的度。 邻接表 (Adjacency List)表示法 弧结点: 顶点结点: LOGO 图的基本概念及基本术语 图的表示法 图的遍历 最小生成树 最短路径 拓扑排序 7.2.1邻接矩阵 (Adjacency Matrix) 0 1 2 3 0 1 2 8 6 3 1 2 9 5 4 2 0 3 1 n(n-1)/2 n2 不对!有可能是对称矩阵 邻接矩阵的C语言描述 采用邻接矩阵表示法创建有向网-P205 见算法7.1 思考:   如何采用邻接矩阵表示法创建有向网的其它操作??? 只须将实现有向网中边的权值表示方式按如下修改即可 每条边的边权规定为1,边权为0时表示无边 用邻接矩阵实现有向图 边权规定为1,边权为0时表示无边 一条边可看作两条相反方向的弧,如: -----插入一条边(i,j)的操作: 用邻接矩阵实现无向图 G-arcs[i][j].adj=1; G-arcs[j][i].adj=1; 优点: 易于操作 缺点: 对于稀疏图来讲,该方法极浪费 邻接矩阵表示法 解决方法: 邻接表表示法 邻接矩阵表示法 内容结束之后回 A B C D vexdata firstarc A B C D 0 1 2 3 adjvex nextarc ? ? ? ? 1 3 0 2 1 0 无向图的邻接表 表头结点表 边表 表头结点表下标可从1开始也可从0开始 A B C A B C 0 1 2 ? A B C 0 1 2 1 0 2 ? ? ? ? ? 0 1 1 有向图的邻接表 邻接表 (出边表) 逆邻接表 (入边表) vexdata firstarc adjvex nextarc vexdata firstarc adjvex nextarc B A C D 6 9 5 2 8 A B C D 0 1 2 3 ? ? ? ? 1 5 3 6 2 8 3 2 (出边表) (顶点表) 有向网 (带权图) 的邻接表 1 9 vexdata firstarc adjvex info nextarc 优点: 不必存储不存在的边(弧) 缺点: 结构较复杂 如建立逆邻接表,方便计算入度,但实际上,一条边需分别在邻接表与逆邻接表中存储 邻接表表示法 解决方法: 十字链表(优点一条弧只被存放一次) 十字链表 “结点结构”之后回 0 3 1 2 info 3 5 1 8 9 0 1 3 tailvex=0 headvex=1 hlink=弧<1,3>地址 3 1 tlink=弧<0,2>地址 0 2 info存储弧的相关信息:如权值3 0 3 1 B 3 5 1 8 9 A 1 D D A 0 2 3 1 B 1 2 3 D 1 firstin=弧<1,0>地址 firstout=弧<0,2>地址 data存储与顶点有关的信息,如: 名字A 十字链表 1.“图例”后回并练习 2.形式化定义与算法 作图方法: 1. 先画出顶点结点(数组形式) 2.画出所有弧结点(刚弧尾将各弧结点放置在对应的顶点结点后面) 3.连线 是有向图的一种链式存储结点结构 优点: 计算出度、入度十分方便 缺点: 结构较复杂 十字链表表示法 邻接多重表 内容结束后回 是无向图的一种存储结构 优点: 提供更为方便的边处理信息,如:   比较无向图的邻接表表示法中,每一条边在邻接表中都对应着两个结点,它们分别在第i个边链表和第j个边链表中,若要检测某条边是否被访问过,则需要同时找到表示该条边的两个结点,而这两个结点又分别在两个边链表中。 邻接多重表表示法

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档