深度优先搜索其实有点类似于树的先根遍历
深度优先搜索的遍历过程如下:
- 1、将图中的所有顶点作“未访问”标记
- 2、任选图中未访问的结点 v v v作为遍历结点
- 3、访问 v v v结点,然后深度访问 v v v的第一个未被访问的邻接点 w 1 w_1 w1
- 4、从 w 1 w_1 w1再出发重新深度访问 w 1 w_1 w1的未被访问的邻接点 w 2 w_2 w2 …,直到到达的下一个结点的所有的邻接点都被访问过为止
- 5、然后依次退回,查找 w i − 1 w_i-_1 wi−1是否还有未被访问的邻接点,如果存在未被访问过的,则访问此邻接点
具体来看个例子吧