图算法详解与实战
引言
图是复杂的数据结构。本文介绍图的核心算法和应用。
一、图的表示
1.1 邻接矩阵
1 | int[][] graph = { |
1.2 邻接表
1 | Map<Integer, List<Integer>> graph = new HashMap<>(); |
二、图遍历
2.1 DFS(深度优先)
1 | public void dfs(int node, boolean[] visited, Map<Integer, List<Integer>> graph) { |
2.2 BFS(广度优先)
1 | public void bfs(int start, Map<Integer, List<Integer>> graph) { |
三、最短路径
3.1 Dijkstra算法
1 | public int[] dijkstra(int[][] graph, int start) { |
总结
图算法核心:
- 遍历:DFS、BFS
- 最短路径:Dijkstra、Floyd
- 拓扑排序:AOV网
- 最小生成树:Kruskal、Prim
参考资料
- 《算法导论》
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 CodeIcee的星球!





