答案 0 :(得分:1)
尝试使用您的示例逐步遵循此伪代码,您将了解算法,它非常简单,只是简单的DFS:
Initialize clock to 1
PreVisit(v):
pre[v] <- clock
clock <- clock + 1
PostVisit(v):
post[v] <- clock
clock <- clock + 1
Explore(v):
visited[v] = true
PreVisit(v)
for all u adj to v:
if u is not visited:
Explore(u)
PostVisit(v)
请注意,您必须创建一个具有顶点长度的pre
,post
和visited
数组。对于visited
数组,您必须在致电false
之前填写Explore(v)
。