public static <V, E extends GEdge<V>> Set<Set<V>> getStronglyConnectedComponents(
			GDirectedGraph<V, E> g) {
		TarjanStronglyConnectedAlgorthm<V, E> algorithm = new TarjanStronglyConnectedAlgorthm<>(g);
		return algorithm.getConnectedComponents();
	}
Returns a list where each set therein is a strongly connected component of the given 
graph.  Each strongly connected component is that in which each vertex is reachable from
any other vertex in that set.

<P>This method can be used to determine reachability of a set of vertices.  

<P>This can also be useful for cycle detection, as a multi-vertex strong component 
is by definition a cycle.  This method differs from 
{@link #findCircuits(GDirectedGraph, boolean, TaskMonitor)} in that the latter will 
return cycles within the strong components, or sub-cycles. 

@param g the graph
@return the list of strongly connected components
Ghidra/Framework/Graph/src/main/java/ghidra/graph/GraphAlgorithms.java