arboretum_td/graph/
mutable_graph.rs1use crate::graph::base_graph::BaseGraph;
2
3pub trait MutableGraph: BaseGraph {
4 fn add_vertex(&mut self, u: usize);
5 fn add_vertex_with_capacity(&mut self, u: usize, capacity: usize);
6 fn remove_vertex(&mut self, u: usize);
7 fn add_edge(&mut self, u: usize, v: usize);
8 fn remove_edge(&mut self, u: usize, v: usize);
9 fn eliminate_vertex(&mut self, u: usize);
10 fn contract(&mut self, u: usize, v: usize);
11 fn new() -> Self;
12 fn with_capacity(capacity: usize) -> Self;
13 fn make_clique(&mut self, vertices: &[usize]) {
14 for (i, v) in vertices.iter().enumerate() {
15 for u in vertices.iter().skip(i + 1) {
16 self.add_edge(*u, *v);
17 }
18 }
19 }
20}