【数据结构】图的存储--邻接矩阵

本文介绍了图的邻接矩阵存储方法,详细阐述了如何使用一个n×n矩阵表示图的邻接关系和权值。针对无向图的对称性和简单图无自回路的特点进行了说明,并探讨了邻接矩阵与顶点度的关系。同时,提供了有向图和无向图的矩阵特征。最后,给出了邻接矩阵存储图的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

所谓“邻接矩阵”的存储方式就是用一个一维数组存储图中全部的n个顶点的信息,用一个n×n的矩阵表示图中各顶点的邻接关系和权值。在矩阵中用1或0表示顶点间是否存在邻接关系。如果是网图的话,用0或∞表示不邻接(0可能被用作权值),用一个非零数表示权值。
根据图和矩阵的性质,该存储方式应具有以下特点:

  1. 无向图的邻接矩阵一定是一个对称阵,所以在存储时只需存储矩阵的上三角即可。
  2. 由于这里讨论的是简单图,所以图中不存在自回路,所以矩阵的主对角线元素都为0。
  3. 对于无向图,矩阵第i行(或第i列)的非零元素个数正好是第i个顶点的度。
  4. 对于有向图,矩阵第i行(或第i列)的非零元素个数正好是第i个顶点的出度(或入度)。

下面给出邻接矩阵存储图的代码描述。

以下是存储结构的声明。
#define MaxVertexNum 100    //最大顶点数设为100
#define INFINITY 65535      //无穷设为双字节无符号整数的最大值65535

enum GraphType {DG, UG, DN, UN}; //有向图,无向图,有向网图,无向网图
typedef stuct Mgraph{
    char Vertices[MaxVertexNum];          
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值