图论基础
存图=
(邻接矩阵只适用于没有重边(或重边可以忽略)的情况,一般情况下不用考虑)
- 邻接矩阵
空间复杂度高:O(n^2)
查询一条边的存在情况快: O(1)
遍历一个点的所有出边 :O(n)
遍历整个图 :O(n^2)
- 邻接表
空间复杂度低 :为O(m) m为边数
查询某条边 : O(d+(u))即这个点的边数 ,如果边有排序,则通过二分就是O(log d+(u)) log边数的事件。
遍历一个点的所有出边 :O(d+(u))即该点的边数
遍历整个图 :O(n+m) 事件为点的个数加边数。 - 链式前向星
与邻接表基本一致。
优点是边有编号(在更厉害点的算法中有用)