深度遍历邻接表存储的图
时间: 2023-11-05 13:13:20 浏览: 201
C++实现图的邻接表存储和广度优先遍历实例分析
深度遍历邻接表存储的图的过程如下:
1. 选择一个起始顶点 v,将其标记为已访问。
2. 对于每个与顶点 v 相邻的未访问顶点 w,递归执行步骤 1。
3. 如果不存在未访问的相邻顶点,则回溯到上一级顶点,继续执行步骤 2。
具体实现可以使用递归或栈来实现。以下是使用递归实现深度遍历的伪代码:
```
DFS(v):
标记 v 为已访问
for each w in adjacent(v) do
if w is not visited then
DFS(w)
```
其中,`adjacent(v)` 表示与顶点 v 相邻的顶点集合,可以通过邻接表来获取。`is not visited` 表示判断顶点 w 是否已被访问过。
需要注意的是,如果图不是连通的,则需要对每个连通分量都执行一次深度遍历。可以通过遍历所有顶点,对未访问的顶点执行深度遍历来实现。
阅读全文