Modify DFS to solve topological sort problem
DFSTopoSort (graph G):
for each vertex v in G do
Enc(v) = false;
for each vertex v do
if Enc(v) == false then RecursiveDFS(v);
nextnumber := n;
procedure RecursiveDFS(vertex v):
Encountered(v) = true;
for each neighbor w of v do
if !Encountered(w) then RecursiveDFS(w);
Number(v) := nextnumber;
nextnumber --;
Previous slide
Next slide
Back to first slide
View graphic version