Struct disjoint_sets::UnionFind
[−]
[src]
pub struct UnionFind<E: ElementType = usize> { // some fields omitted }
Array-based union-find representing a set of disjoint sets.
Methods
impl<E: ElementType> UnionFind<E>
[src]
fn new(size: usize) -> Self
Creates a new union-find of size
elements.
Panics
If size
elements would overflow the element type E
.
fn len(&self) -> usize
The number of elements in all the sets.
fn alloc(&mut self) -> E
Creates a new element in a singleton set.
Panics
If allocating another element would overflow the element type
E
.
fn union(&mut self, a: E, b: E)
Joins the sets of the two given elements.
fn find(&self, element: E) -> E
Finds the representative element for the given element’s set.
fn equiv(&self, a: E, b: E) -> bool
Determines whether two elements are in the same set.
fn force(&self)
Forces all laziness, so that each element points directly to its set’s representative.
fn as_vec(&self) -> Vec<E>
Returns a vector of set representatives.
Trait Implementations
impl<E: Clone + ElementType> Clone for UnionFind<E>
[src]
fn clone(&self) -> UnionFind<E>
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0
Performs copy-assignment from source
. Read more