Skip to main content

icentral_bridge_edges/
bridge_edges.rs

1crate::ix!();
2
3pub trait FindBridgeEdges {
4
5    fn find_bridge_edges<GH: BccGraphHashInterface>(&mut self) -> Vec<Edge>;
6}
7
8impl<G: FindBiconnectedComponent> 
9FindBridgeEdges for G {
10
11    /// the single edge in a size 2 bcc is a bridge
12    ///
13    fn find_bridge_edges<GH: BccGraphHashInterface>(&mut self) -> Vec<Edge> {
14        
15        let mut out_vec = vec![];
16
17        let mut bcc_vec: Vec<GH> = vec![];
18
19        self.find_bicon_component(&mut bcc_vec);
20
21        for i in 0..bcc_vec.len() {
22
23            if bcc_vec[i].num_nodes() == 2 {
24
25                let mut e: Edge = Edge::default();
26
27                e = *bcc_vec[i].edges().iter().nth(0).unwrap();
28
29                out_vec.push(e);
30            }
31        }
32
33        out_vec
34    }
35}