icentral_subgraph/
get_connected_component_sizes.rs

1crate::ix!();
2
3impl GetConnectedComponentSizes for SubGraph {
4
5    /**
6      | the vector @out_vec will have sizes
7      | of the connected components in the graph
8      |
9      */
10    fn conn_comp_sizes(&self) 
11    -> Result<Vec<i32>,BetweennessCentralityError>
12    {
13        let mut out_vec = vec![];
14
15        let mut visit_markers = VisitMarkers::new(
16            self.nodes_map.len(), 
17            "conn_comp_sizes.visit_markers"
18        );
19
20        for node in visit_markers.iter_unvisited() {
21
22            visit_markers.visit(node);
23
24            out_vec.push(1);
25
26            self.do_bfs_from_source_count_vertices_and_mark_visited(
27                node, 
28                &mut visit_markers, 
29                &mut out_vec
30            );
31        }
32
33        Ok(out_vec)
34    }
35}