深度优先搜索(DFS)在图的运行过程
- 深度优先搜索算法(DFS)
- C语言实现
- 运行DFS并记录结果
- 节点发现时间和完成时间:
图a是一个有向图,为了清晰起见,我们首先假设图a的具体结构如下(节点和边的集合):
图a:
节点集合: {A, B, C, D, E, F}
边集合: {(A, B), (A, C), (B, D), (B, E), (C, F), (D, C), (E, F)}
我们将使用深度优先搜索(DFS)算法来遍历这个图,并记录每个节点的发现时间和完成时间,同时对每条边进行分类(树边、前向边、后向边或横叉边)。
深度优先搜索算法(DFS)
DFS的伪代码如下:
DFS(G, v):
1. 初始化时间计数器 time = 0
2. 对所有顶点 u ∈ G.V:
3. u.color = WHITE
4. u.π = NIL
5. u.d = ∞
6. u.f = ∞
7. time = time + 1
8. v.d = time
9. v.color = GRAY
10. for each u