- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
图的几种存储结构比较研究 班级: 软件工程六班 姓名: 马 盛 国 学号:140120010168 图的几种主要存储结构 1.邻接矩阵 2.邻接表 3.十字链表 4.邻接多重表 1. 邻接矩阵 对于无向图,(vi,vj)和(vj,vi)表示同一条边,因此,在邻接矩阵中aij=aji。 对有向图,弧vi,vj和vj,vi表示方向不同的两条弧,所以aij≠aji。 在图的顶点确定的情况下,其邻接矩阵表示是唯一的。 邻接矩阵(Adjacency Matrix)是表示图中顶点之间相邻关系的矩阵。设G=(V, E)是具有n个顶点的图,则G的邻接矩阵是具有如下性质的n阶方阵An×n: 无向图的邻接矩阵是以主对角线对称的,第i 行(列)1的个数就是顶点vi 的度。即 上图中:D(1)=2 D(2)=3 D(3)=2 D(4)=3 D(5)=2 有向图的邻接矩阵可能是不对称的。在有向图中: ▲ 第 i 行中 1 的个数就是顶点 i 的出度。 ▲ 第 j 列 中1 的个数就是顶点 j 的入度。 ▲ 有向图中各顶点的入度之和等于出度之和。 ID (vi)= OD (vi)= 上图中:D(1)=OD(1)+ID(1)=3 D(2)=OD(2)+ID(2)=3 D(3)=OD(3)+ID(3)=3 D(4)=OD(4)+ID(4)=3 ■带权值的邻接矩阵 总结: (1)因为不考虑顶点到自身的边或弧,所以邻接矩阵的对角线必为0; (2)无向图的邻接矩阵为对称矩阵,所以可用特殊矩阵压缩方式存储; (3)无向图的顶点的度为邻接矩阵中该顶点对应的行(列)中非零元个数; (5)有向图的邻接矩阵不一定为对称矩阵; (6)有向图中顶点的入度为该顶点对应列中非零元的个数,出度为该顶点对应行中为非零元的个数。 邻接矩阵表示法中图的类型定义: #define MAXSIZE 100 /*图的顶点个数*/ typedef struc { int no; //顶点编号 infotype info; //顶点其它信息 }vertextype; // 顶点类型 typedef struct //图的定义 { vertextype vexs[MAXSIZE]; /*顶点信息表*/ int edges[MAXSIZE][ MAXSIZE] ;/ *邻接矩阵*/ int n ; /*顶点数*/ int e ; /*边数*/ }mgraph; 2 1 4 3 5 无向图 t-n=5 t-e=6 mgraph *t; B A D C E 有向图 mgraph *t; t-n=5 t-e=6 注:用两个数组分别存储顶点表和邻接矩阵 #define INFINITY INT_MAX //最大值∞ #define MAX_VERTEX_NUM 20 //假设的最大顶点数 Typedef enum {DG, DN, AG,AN } GraphKind; //有向/无向图,有向/无向网 Typedef struct ArcCell{ //弧(边)结点的定义 VRType adj; //顶点间关系,无权图取1或0;有权图取权值类型 InfoType *info; //该弧相关信息的指针 }ArcCell, AdjMatrix [ MAX_VERTEX_NUM ] [MAX_VERTEX_NUM ]; Typedef struct{ //图的定义 VertexType vexs [MAX_VERTEX_NUM ] ; //顶点表,用一维向量
文档评论(0)