图的几种表示方法

图数据结构的表示方法大致分为四种,邻接矩阵、邻接表、十字链表、多重邻接表。

邻接矩阵是最容易理解的表示方法,优点是简单易懂,缺点是可能会占用很多存储空间,且没有任何意义,空间复杂度有向图是n^2,无向图是n(n-1)/2,因为无向图矩阵是对称的,只需要存储一半且不包含对角线即可。邻接矩阵的存储优化可以通过矩阵优化来实现(具体可以看矩阵的压缩方法)。

邻接表就是更加灵活,节省存储空间空间复杂度有向图是n+e,无向图是n+2e,但是表示起来复杂一些。邻接表还衍生出了一种逆邻接表,因为邻接表统计出度的效率较高,而入度需要遍历整个表才可以统计出来,而逆邻接表不需要遍历,直接就可以统计出每个结点的出度,这正好和邻接表相反。

十字链表是结合了邻接表和逆邻接表于一体的表示方法,用来表示有向图,综合了两种表示方法的优点,缺点是表示起来更加复杂。

多重邻接表是类似于十字链表的表示方法,用来表示无向图,当一个无向图需要频繁的修改时,邻接表表示法需要修改边两侧的结点对应的信息,而多重邻接表可以只修改一次,计算量节省了一半。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值