Computes a list of subgraphs of the given graph. Each subgraph will represent a strongly
connected component and will contain all vertices of that component. The subgraph will have
an edge $(u,v)$ iff $u$ and $v$ are contained in the strongly connected component.

Returns:

a list of subgraphs representing the strongly connected components

Compute the condensation of the given graph. If each strongly connected component is
contracted to a single vertex, the resulting graph is a directed acyclic graph, the
condensation of the graph.