Warning
This documents an unmaintained version of NetworkX. Please upgrade to a maintained version and see the current NetworkX documentation.
strongly_connected_components_recursive¶
-
strongly_connected_components_recursive
(G)[source]¶ Generate nodes in strongly connected components of graph.
Recursive version of algorithm.
Parameters: G (NetworkX Graph) – An directed graph. Returns: comp – A generator of sets of nodes, one for each strongly connected component of G. Return type: generator of sets Raises: NetworkXNotImplemented
– If G is undirectedExamples
Generate a sorted list of strongly connected components, largest first.
>>> G = nx.cycle_graph(4, create_using=nx.DiGraph()) >>> G.add_cycle([10, 11, 12]) >>> [len(c) for c in sorted(nx.strongly_connected_components_recursive(G), ... key=len, reverse=True)] [4, 3]
If you only want the largest component, it’s more efficient to use max instead of sort.
>>> largest = max(nx.strongly_connected_components_recursive(G), key=len)
See also
connected_components()
Notes
Uses Tarjan’s algorithm with Nuutila’s modifications.
References
[1] Depth-first search and linear graph algorithms, R. Tarjan SIAM Journal of Computing 1(2):146-160, (1972). [2] On finding the strongly connected components in a directed graph. E. Nuutila and E. Soisalon-Soinen Information Processing Letters 49(1): 9-14, (1994)..