|
GraphLibrary
0.0.1
A simple library that implements various graph algorithms.
|
Represents disjoint sets. More...
#include <DisjointSets.hpp>
Public Member Functions | |
| DisjointSets ()=default | |
| Default constructor. More... | |
| DisjointSets (idx_t numElems) | |
| Constructor for fixed number of elements. More... | |
| DisjointSets (const DisjointSets &)=default | |
| Copy constructor. More... | |
| DisjointSets (DisjointSets &&) noexcept=default | |
| Move constructor. More... | |
| DisjointSets & | operator= (const DisjointSets &)=default |
| Copy assignment. More... | |
| DisjointSets & | operator= (DisjointSets &&) noexcept=default |
| Move assignment. More... | |
| ~DisjointSets ()=default | |
| Destructor. More... | |
| idx_t | find (idx_t elem) |
| Finds the set parent of an element. More... | |
| void | merge (idx_t one, idx_t two) |
| Merges two of the disjoint sets. More... | |
Private Types | |
| using | idx_t = gl::index_type |
Private Attributes | |
| idx_t | numElems_ |
| Initial number of sets. More... | |
| std::vector< idx_t > | parent_ |
| Parents of every element. More... | |
| std::vector< idx_t > | rank_ |
| Ranks of every element in their set. More... | |
Represents disjoint sets.
The set to which each element belongs to can be found and sets can be merged.
|
private |
|
default |
Default constructor.
|
explicit |
Constructor for fixed number of elements.
| [in] | numElems | Number of elements in the disjoint sets. |
|
default |
Copy constructor.
|
defaultnoexcept |
Move constructor.
|
default |
Destructor.
|
default |
Copy assignment.
|
defaultnoexcept |
Move assignment.
| DisjointSets::idx_t gl::DisjointSets::find | ( | idx_t | elem | ) |
Finds the set parent of an element.
| [in] | elem | Element whose set membership is to be found. |
Merges two of the disjoint sets.
| [in] | one | Member of set one. |
| [in] | two | Member of set two. |
|
private |
Initial number of sets.
|
private |
Parents of every element.
|
private |
Ranks of every element in their set.