Depth-First-Search
for each u ∈ G.V u.color = white time = 0 for each u ∈ G.V if u.color == white DFS-Visit(G,u)
u.d = ++time u.color = gray
for
each v ∈ G.Adj[u]
if
v.color == white DFS-Visit(G,v) u.color = black u.f = ++time