pub fn is_perfect_matching(
graph: &Graph,
edge_indices: &[usize],
) -> IgraphResult<bool>Expand description
Check whether a matching is a perfect matching.
A perfect matching covers every vertex exactly once. Only possible when the graph has an even number of vertices.
ยงExamples
use rust_igraph::{Graph, maximum_matching, is_perfect_matching};
// K_4 has a perfect matching
let g = Graph::from_edges(
&[(0,1),(0,2),(0,3),(1,2),(1,3),(2,3)], false, Some(4)
).unwrap();
let m = maximum_matching(&g).unwrap();
assert!(is_perfect_matching(&g, &m).unwrap());