Module connected_components

Module connected_components 

Source
Expand description

Connected Components (Generic, Production-Grade)

Finds all connected components in an undirected graph represented as an adjacency list.

§Type Parameters

  • T: Node type. Must implement Eq + Hash + Clone.

§Arguments

  • graph - Reference to adjacency list: &HashMap<T, Vec<T>>.

§Returns

  • Vec<Vec<T>> - List of connected components, each as a vector of nodes.

§Example

use std::collections::HashMap;
use pofk_algorithm::graph_algorithms::connected_components::connected_components;
let mut graph = HashMap::new();
graph.insert(1, vec![2]);
graph.insert(2, vec![1]);
graph.insert(3, vec![4]);
graph.insert(4, vec![3]);
let mut comps = connected_components(&graph);
for comp in &mut comps { comp.sort(); }
comps.sort();
assert_eq!(comps, vec![vec![1, 2], vec![3, 4]]);

Functions§

connected_components