图的存储方式

本文详细介绍了图的四种存储方式:邻接矩阵、邻接表、十字链表和邻接多重表。对于邻接矩阵,讲解了计算顶点的度、入度、出度的时间复杂度,以及如何找到相邻边,特别讨论了无向图的压缩存储方法。邻接表法中,阐述了其结构特点,计算度、入度和出度的方法。十字链表只适用于有向图,邻接多重表则用于无向图。文章对比了四种方法在空间复杂度、查找相邻边、适用性和操作上的差异。

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

邻接矩阵法

计算指定顶点的度、入度、出度和时间复杂度

  • 无向图
    • 求度:邻接矩阵第i行(或者第i列)非零元素(或者说非∞元素,带权图)的个数是该顶点的度
    • 时间复杂度:O(n)=O(|V|)
  • 有向图
    • 求出度:邻接矩阵第i行非零元素(或者非∞元素)的个数为该顶点的出度
    • 求入度:邻接矩阵第i列非零元素(或者非∞元素)的个数为该顶点的出度
    • 求度:先求出入度和出度再相加
    • 时间复杂度:求出度或者入度,O(n);求度,O(2n)=O(n)=O(|V|)

如何找到与顶点相邻的边(入边、出边)?时间复杂度如何?

  • 无向图
    • 找边:找到该元素对应的行,该行中为1的元素对应的坐标(横坐标, 纵坐标)构成的即为边
    • 时间复杂度:O(n)=O(|V|)
  • 有向图
    • 找入边:找到该元素对应的列,该列中值为1的元素对应的坐标<横坐标, 纵坐标>构成的的即为入边
    • 找出边:找到该元素对应的行,该列中值为1的元素对应的坐标<横坐标, 纵坐标>构成的的即为出边
    • 时间复杂度:O(n)=O(|V|)
<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值