C_chap_7.1 图及存储结构new.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文档。上传文档
查看更多
C_chap_7.1 图及存储结构new

* ? 第七章 图 7.1 图的定义与术语 7.2 图的存储结构 7.3 图的遍历 7.4 图的连通性问题 7.5 有向无环图及其应用 7.6 最短路径 7.1 图的定义与术语 ?1. 定义 图:???? Graph= ( V,? R ) ???? 其中:? V={ x| x ∈dataobject? } x 是数据元素,在图中称为顶点。 ??????????? R= { VR }? ???????????? VR= { x, y | P( x, y )∧( x, y ∈V ) } VR 为顶点间关系的集合, ???????????? x, y 为一条弧;x 为弧尾,y 为弧头;有向图。 ??????????? x, y 为图中的一条边;x, y 称为终端点。无向图。 例: 邻接点:在无向图中 x, y 互为邻接点。 在有向图中,y 邻接自 x,x邻接到y. 顶点的度:无向图中,与v关联的边数, 有向图中,顶点有出度与入度之分。 路径: 无向图? 顶点序列;有向图中,顶点序列中的边必须是有向的。 边的权:表示从一个顶点到另一个顶点的距离或耗费。 子图: 图的一部分。 连通性:u ,v 之间有路径, u, v 之间是连通的;在图 G 中,任意的 vi,vj∈ V,有 vi,vj 连通,图 G 是连通的 连通分量; 图中的极大连通子图。 生成树;图中包含全部顶点的极小连通子图。 结构的建立和销毁 插入或删除顶点 对邻接点的操作 对顶点的访问操作 遍历 插入和删除弧 基本操作 对邻接点的操作 FirstAdjVex(G, v); // 返回 v 的“第一个邻接点” 。若 //该顶点在 G 中没有邻接点,则返回“空”。 NextAdjVex(G, v, w); // 返回 v 的(相对于 w 的) “下一个邻接 点”。若 w 是 v 的最后一个邻接点,则 返回“空”。 遍 历 DFSTraverse(G, v, Visit()); //从顶点v起深度优先遍历图G,并对每 //个顶点调用函数Visit一次且仅一次。 BFSTraverse(G, v, Visit()); //从顶点v起广度优先遍历图G,并对每 //个顶点调用函数Visit一次且仅一次。 7.2 图的存储结构 一、图的数组(邻接矩阵)存储表示 二、图的邻接表存储表示 三、有向图的十字链表存储表示 四、无向图的邻接多重表存储表示 7.2.1 数组表示法 ? 用两个数组分别表示顶点信息及边的信息。??? ????????? 0?? 1?? 0?? 1?? 0 ???????? 1?? 0?? 1?? 0?? 1? A1=?? 0?? 1?? 0?? 1?? 1??? ? 1?? 0?? 1?? 0?? 0??????? ??? 0?? 1?? 1?? 0?? 0 ?????? 0?? 1?? 1?? 0?????????? 0?? 0?? 0?? 0 A2=? 0?? 0?? 0?? 1????? 1?? 0?? 0?? 0 ? Aij={ 0 (i,j)?VR 1 (i,j)?VR B A C D F E 定义:矩阵的元素为 typedef struct ArcCell { // 弧的定义 VRType adj; // VRType是顶点关系类型。 // 对无权图,用1或0表示相邻否; // 对带权图,则为权值类型。 InfoType *info; // 该弧相关信息的指针 } ArcCell, AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM]; typedef struct { // 图的定义 VertexType // 顶点信息 vexs[MAX_VERTEX_NUM]; AdjMatrix arcs; // 弧的信息 int vexnum, arcnum; // 顶点数,弧数 GraphKind kind; // 图的种类标志 } MGraph; #define INFINITY INT_max //最大值 #define MAX_VERTEX_NUM //最大顶点个数 typedef enum {DG,DN,UDG,UDN} GraphKind; //{有向图,有向网,无向图,无向网} ?网的邻接矩阵定义为: A [i

文档评论(0)

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

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

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档