Decrease-by-one algorithms: Topological Sort