图的存储邻接矩阵

目录

一、邻接矩阵

二、邻接矩阵的性质

小结:

下一篇:图的存储邻接表


一、邻接矩阵

注意:(A行,B列)表示有从到到B的邻接边

如图:

对于无向图,矩阵中的每一个1代表两个顶点邻接(存在一条边)0代表不邻接,一条边代表两个1(因为无向)

 

对于有向图,与无向图不同,一个弧代只表一个1

 

结构:

//邻接矩阵存储图

//顶点最大数

#define MaxVertexNum 100

typedef struct {

char Vex[MaxVertexNum];//顶点表

int        Edge[MaxVertexNum][MaxVertexNum];//邻接矩阵,也可以用bool类型

int aexnum,arcnum;//当前的边/弧的条数

}MGraph;

 

思考:

求顶点的度:遍历第i行(或第i列)的非零元素个数

有向图的出度和入度

出度:第i行非零的个数

入度:第i列非零的个数

度:出度+入度

 

若边带权值,边的值可以使用权值

可以使用一个很大很大的值表示无穷,例如int的最大值

#define INFINITY 最大值

自己指向自己的顶点可以表示为0,即在带权图中0和无穷都表示两个顶点间没有边

空间复杂度为O(|V|^2)

对于无向图是对称矩阵可以使用矩阵压缩(只存储上三角或下三角矩阵)

 

二、邻接矩阵的性质

根据矩阵相乘的原理,类似于连通性问题,只要有一个无法连通就不能到达,例如下图中第一个例子a12 a24就是代表1可以通过2再到4,距离为2,而其他的式子都为0表示不能到达

A表示邻接矩阵,A^n[i][j]等于从顶点ij的长度为n的路径的数目

 

小结:

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值