Topological Sort for a DAG
Nice Algorithm: Get strongly connected components in a digraph