pub trait RelabelByDegreeOp<NI, EV> {
// Required method
fn make_degree_ordered(&mut self);
}Required Methods§
Sourcefn make_degree_ordered(&mut self)
fn make_degree_ordered(&mut self)
Creates a new graph by relabeling the node ids of the given graph.
Ids are relabaled using descending degree-order, i.e., given n nodes,
the node with the largest degree will become node id 0, the node with
the smallest degree will become node id n - 1.
Note, that this method creates a new graph with the same space requirements as the input graph.
§Example
use graph_builder::prelude::*;
let mut graph: UndirectedCsrGraph<u32> = GraphBuilder::new()
.edges(vec![(0, 1), (1, 2), (1, 3), (3, 0)])
.build();
assert_eq!(graph.degree(0), 2);
assert_eq!(graph.degree(1), 3);
assert_eq!(graph.degree(2), 1);
assert_eq!(graph.degree(3), 2);
let mut neighbors = graph.neighbors(0);
assert_eq!(neighbors.next(), Some(&1));
assert_eq!(neighbors.next(), Some(&3));
assert_eq!(neighbors.next(), None);
graph.make_degree_ordered();
assert_eq!(graph.degree(0), 3);
assert_eq!(graph.degree(1), 2);
assert_eq!(graph.degree(2), 2);
assert_eq!(graph.degree(3), 1);
assert_eq!(graph.neighbors(0).as_slice(), &[1, 2, 3]);Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".