04. 图
图
1. 基本概念
- 图:由顶点集和边集组成,可分为有向图、无向图
- 邻接、度、连通、权、路径、回路、连通分量
2. 存储结构
- 邻接矩阵:二维数组,适合稠密图
- 邻接表:数组+链表,适合稀疏图
- 邻接多重表、十字链表:适合复杂图
3. 遍历
- 深度优先搜索(DFS):递归/栈实现,优先走深
- 广度优先搜索(BFS):队列实现,优先走广
4. 基本应用
- 最小生成树(Prim、Kruskal 算法)
- 最短路径(Dijkstra、Floyd 算法)
- 拓扑排序:有向无环图
- 关键路径:AOV 网,项目管理
练习题
- 简述图的基本概念及常见术语。
- 邻接矩阵和邻接表各自的优缺点是什么?
- DFS 和 BFS 的基本思想和实现方式是什么?
- 最小生成树和最短路径的常用算法有哪些?
- 拓扑排序的应用场景是什么?
参考答案
1. 基本概念
图由顶点和边组成,有向/无向、邻接、度、连通、权、路径、回路等
2. 存储结构优缺点
邻接矩阵:适合稠密图,空间大,查找快;邻接表:适合稀疏图,空间省,查找慢
3. DFS 与 BFS
DFS 递归/栈,优先走深;BFS 队列,优先走广
4. 常用算法
最小生成树:Prim、Kruskal;最短路径:Dijkstra、Floyd
5. 拓扑排序应用
有向无环图的任务调度、课程安排、项目管理等