pub fn strongly_connected_components(
graph: &Graph,
) -> IgraphResult<ConnectedComponents>Expand description
Compute the strongly connected components of graph.
Counterpart of igraph_connected_components(_, _, _, _, IGRAPH_STRONG).
On an undirected graph, returns the same partition as
connected_components.
§Examples
use rust_igraph::{Graph, strongly_connected_components};
// Two disjoint 3-cycles in a directed graph: 0→1→2→0 and 3→4→5→3.
let mut g = Graph::new(6, true).unwrap();
g.add_edge(0, 1).unwrap();
g.add_edge(1, 2).unwrap();
g.add_edge(2, 0).unwrap();
g.add_edge(3, 4).unwrap();
g.add_edge(4, 5).unwrap();
g.add_edge(5, 3).unwrap();
let scc = strongly_connected_components(&g).unwrap();
assert_eq!(scc.count, 2);
assert_eq!(scc.membership[0], scc.membership[1]);
assert_eq!(scc.membership[1], scc.membership[2]);
assert_eq!(scc.membership[3], scc.membership[4]);
assert_ne!(scc.membership[0], scc.membership[3]);