邻接矩阵法和邻接表法

邻接矩阵:使用数组存储,是顺序存储,若两个点之间相互邻接,即有边对应,则在矩阵写1(无向图)
有向图则是a->b有一条对应的有向边,则在邻接矩阵写1
无向图的邻接矩阵是对称矩阵,应为一条边对应两个点
在这里插入图片描述
在这里插入图片描述
对于无向图来说,求节点的度可以将邻接矩阵的一行/一列的非零数相加起来即可求出该节点的度
有向图求出度即为行元素非0值相加,入度即为列元素非0值相加,求度即为二者相加即可

如果是用邻接矩阵求带权图,则在有边相连的那个地方填上该边的权值即可,如果不存在边,则可以在上面写个∞,代码即为INF

邻接矩阵适合存储稠密图,因为边多,浪费少
因为无向图的邻接矩阵是对称矩阵,所以可以用上三角/下三角来压缩存储在这里插入图片描述
即可以用矩阵乘他本身就可以得到路径

**邻接表:**顺序+链式存储
在这里插入图片描述
存储无向图:因为每条边对应两个节点,所以边结点的数量是边的两倍,所以边结点冗余
而有向图则不会,一个边结点对应一条边

如何求入度
无向图:遍历和这个点相关的边链表即可,有多少个边结点,他的度就是多少
有向图:找出度则遍历和这个点相关的边链表即可,若要找入度,则找所有节点所对应的边结点指向他的即可

图的邻接表的表示方式不唯一,但是邻接矩阵唯一

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值