- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[数据结构7
第7章 图 本章中介绍下列主要内容: 图的定义 图的存储结构 图的遍历操作 图的几个典型问题 7.1 图的定义 7.2 图的存储结构 7.3 图的遍历 7.4 最小生成树问题 7.5 拓扑排序问题 7.1 图的定义 7.1.1 定义 图是由结点的有穷集合V和边的集合E组成。其中,为了与树形结构加以区别,在图结构中常常将结点称为顶点,边是顶点的有序偶对,若两个顶点之间存在一条边,就表示这两个顶点具有相邻关系。 图 7-1 在上面两个图结构中,一个是有向图,即每条边都有方向,另一个是无向图,即每条边都没有方向。 在有向图中,通常将边称作弧,含箭头的一端称为弧头,另一端称为弧尾,记作vi,vj,它表示从顶点vi到顶点vj有一条边。 若有向图中有n个顶点,则最多有n(n-1)条弧, 我们又将具有n(n-1)条弧的有向图称作有向完全图。 以顶点v为弧尾的弧的数目称作顶点v的出度,以顶点v为弧头的弧的数目称作顶点v的入度。 在无向图中,边记作(vi,vj),它蕴涵着存在 vi,vj和vj,vi两条弧。若无向图中有n个顶点,则最多有n(n-1)/2条边,我们又将具有n(n-1)/2条边的无向图称作无向完全图。 与顶点v相关的边的条数称作顶点v的度。 路径长度是指路径上边或弧的数目。 若第一个顶点和最后一个顶点相同,则这条路径是一条回路。 若路径中顶点没有重复出现,则称这条路径为 简单路径。 在无向图中,如果从顶点vi到顶点vj有路径,则称vi和vj连通。如果图中任意两个顶点之间都连通,则称该图为连通图,否则,将其中的极大连通子图称为连通分量。 在有向图中,如果对于每一对顶点vi和vj,从vi到vj和从vj到vi都有路径,则称该图为强连通图;否则,将其中的极大连通子图称为强连通分量。 7.1.2 图的基本操作 基本操作: (1)创建一个图结构 CreateGraph(G) (2)检索给定顶点 LocateVex(G,item) (3)获取图中某个顶点 GetVex(G,v) (4)为图中顶点赋值 PutVex(G,v,value) (5)返回第一个邻接点 FirstAdjVex(G,v) (6)返回下一个邻接点 NextAdjVex(G,v,w) (7)插入一个顶点 InsertVex(G,v) (8)删除一个顶点 DeleteVex(G,v) (9)插入一条边 InsertEdge(G,v,w) (10)删除一条边 DeleteEdge(G,v,w) (11)遍历图 Traverse(G,v) 7.2 图的存储结构 假设图中顶点数为n,则邻接矩阵 A=a(i,j)m*n定义为 图的数组(邻接矩阵)存储表示 const INFINITY = INT_MAX; // 最大值∞ const MAX_VERTEX_NUM = 20; // 最大顶点个数 typedef enum {DG, DN, AG, AN} GraphKind; // 类型标志{有向图,有向网,无向图,无向网} typedef struct ArcCell { // 弧的定义 VRType adj; // VRType是顶点关系类型。 // 对无权图,用1或0表示相邻否;对带权图,则为权值类型。 InfoType *info; // 该弧相关信息的指针 } AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM]; typedef struct { // 图的定义 VertexType vexs[MAX_VERTEX_NUM]; // 顶点信息 AdjMatrix arcs; // 表示顶点之间关系的二维数组 int vexnum, arcnum; // 图的当前顶点数和弧(边)数 GraphKind kind; // 图的种类标志 } MGraph; 例如,无向图G2的数组表示存储结构为: 有向图G1的数组表示存储结构为: 算法7.1是在邻接矩阵存储结构Mgraph上对图的构造操
您可能关注的文档
最近下载
- 电工技能鉴定实操题库(高级工).pdf
- GB/T38058-2024民用多旋翼无人机系统试验方法.pptx VIP
- 公园绿化养护管理制度 .pdf VIP
- 2025甘肃甘南州专业化管理的村党组织书记招聘45人笔试备考试题有答案详解.docx VIP
- 2023-2024学年重庆市凤鸣山中学数学七年级第一学期期末经典试题含解析.doc VIP
- 最新公务员面试试题经典题及答案.docx VIP
- 长恨歌意象研讨分析.pdf VIP
- 2025甘肃张掖市专业化管理村党组织书记招聘32人备考试题及答案解析.docx VIP
- 江西省临川第一中学2024-2025学年高一上学期开学考试数学试题(解析版).docx VIP
- QSR质量手册(超详模板).doc VIP
文档评论(0)