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