Using Depth First Search to find the strongly connected components in a digraph