FA2-BFS层序遍历-邻接表¶
代码实现¶
复杂度分析¶
时间复杂度:O(V + E)¶
- V: 顶点数,E: 边数
- 每个顶点最多入队和出队一次:O(V)
- 每条边最多被检查一次:O(E)
- 总时间复杂度:O(V + E)
空间复杂度:O(V)¶
visit[]数组:O(V)que[]队列:O(V)- 总空间复杂度:O(V)
图解说明¶
相关知识点延伸¶
1. BFS与DFS的区别¶
- BFS: 广度优先,层序遍历,使用队列,适合找最短路径
- DFS: 深度优先,纵深遍历,使用栈(递归),适合拓扑排序
2. 队列实现的优化建议¶
| C | |
|---|---|
3. BFS的应用场景¶
- 最短路径问题:无权图中两点间的最短路径
- 连通性检测:判断图是否连通
- 二分图判断:通过BFS给节点着色
- 拓扑排序:有向无环图的层次遍历
4. 改进建议¶
- 使用动态内存分配避免固定大小限制
- 添加返回值表示遍历结果
- 可以扩展为带权图的最短路径算法(Dijkstra)