数据结构 6.3图的遍历
定义
图的遍历是指从图中的某一顶点出发,按照某种搜索方法沿着图中的边对图中的所有顶点访问一次且仅访问一次
访问顶点可能又回到该顶点上,为避免访问多次,设置辅助数组visited[ ]
图的遍历算法主要有两种:广度优先搜索和深度优先搜索
深度优先搜索
定义
DFS,类似于先序遍历,一条道走到黑,邻接表
稀疏图适用于在邻接表上DFS
空间复杂度为O(|V|),时间复杂度邻接矩阵O(V^2)
邻接表O(V+E)
DFS调用次数是连通分量数
广度优先搜索
定义
BFS,类似于层序遍历,队列
最坏情况空间复杂度为O(V),时间复杂度邻接矩阵O(V^2),邻接表O(V+E)
个边权值相等时,广搜可以解决单源最短路径问题