第42课 - 图的遍历
1. 图的遍历
从图的某一个顶点出发,沿着一些边访问图中所有的顶点,使得每个顶点仅被访问一次。
2. 分类
深度优先搜索DFS(Depth First Search)
广度优先搜索BFS(Breadth First Search)
3. 深度优先遍历
访问起始顶点v,当v还有邻接顶点未访问时,深度遍历未访问过的邻接顶点w。当v的所有邻接顶点都被访问时,若土整所有顶点均已访问,所发结束,若图中还有为访问的顶点,以为访问的顶点作为起始顶点深度遍历。
关键:
整个过程需要一个标记顶点是否被访问过的辅助数组visited[]。
4. 广度优先遍历
(1) 访问起始顶点v0。
(2) 一次访问v0的各个邻接点v0,v1,...,v0x。
(3) 假设最近一次访问的顶点一次为vi1,vi2,...,viy,则一次访问vi1,vi2,...,viy的未被访问的邻接点。
(4) 重复3,直到所有的顶点均被访问。
l 广度优先遍历是一种层次遍历,需要借助队列来实现。
关键:整个过程需要一个标记顶点是否被访问过的辅助数组visited[]。
5. 程序
见41节程序。
小结:
广度优先遍历与深度优先遍历是图结构的基础算法,也是其他图算法的基础。