Let G = (V, E) be a directed, acyclic graph (DAG). If (u,v) E, then u
appears before v in the ordering of events in the schedule.
The vertices and edges in G are referred to as the topology of G.
We want to sort this topology based on some key such that u
implies key(u) < key(v) (or key(v) < key(u) reverse sorted).
The finish times assigned by DFS satisfy this constraint.