数据结构 图 网络
图
表示多对多关系,包含顶点集合V和边集合E,不考虑重边和自回路
网络
有向图或无向图+边的权重
表示
邻接矩阵
- 方便直观,方便检查2个顶点是否存在边,检查所有邻接点,方便计算出度入度(边数)
- 稀疏图浪费空间,稀疏图统计总边数浪费时间
- 无向图,只需要一半空间存储即可
邻接表
- 用链表存储
- 每条链表就是邻接矩阵的一行,每个节点是邻接矩阵中
深度优先搜索
- 用邻接表存储,复杂度O(N+E)
- 用邻接矩阵存储,复杂度O(N^2)
广度优先搜索(借助队列)
- 用邻接表存储,复杂度O(N+E)
- 用邻接矩阵存储,复杂度O(N^2)
连通问题
- 连通: 如果V到W有一条路径.则称v和w连通
- 连通图: 图中任意两天均连通
最小路径问题(递增,非递减)
- 无权图:BFS
- 有权图的单源最短路算法:Dijkstra算法(最短路径算法)
1 | // $dist被初始化为正无穷 |
最小生成树
- 是一颗
树,无回路,v个顶点有v-1边 - 是
生成树,v-1条边都在图里 - 边的
权重和最小
- Prim算法
1 | function prim(){ |
http://example.com/2021/09/08/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%20%E5%9B%BE%20%E7%BD%91%E7%BB%9C/
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Dev!