GraphLibrary  0.0.1
A simple library that implements various graph algorithms.
 All Classes Namespaces Files Functions Variables Typedefs Macros
gl::DisjointSets Class Reference

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...
 
DisjointSetsoperator= (const DisjointSets &)=default
 Copy assignment. More...
 
DisjointSetsoperator= (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_tparent_
 Parents of every element. More...
 
std::vector< idx_trank_
 Ranks of every element in their set. More...
 

Detailed Description

Represents disjoint sets.

The set to which each element belongs to can be found and sets can be merged.

Member Typedef Documentation

Constructor & Destructor Documentation

gl::DisjointSets::DisjointSets ( )
default

Default constructor.

gl::DisjointSets::DisjointSets ( idx_t  numElems)
explicit

Constructor for fixed number of elements.

Parameters
[in]numElemsNumber of elements in the disjoint sets.
gl::DisjointSets::DisjointSets ( const DisjointSets )
default

Copy constructor.

gl::DisjointSets::DisjointSets ( DisjointSets &&  )
defaultnoexcept

Move constructor.

gl::DisjointSets::~DisjointSets ( )
default

Destructor.

Member Function Documentation

DisjointSets& gl::DisjointSets::operator= ( const DisjointSets )
default

Copy assignment.

DisjointSets& gl::DisjointSets::operator= ( DisjointSets &&  )
defaultnoexcept

Move assignment.

DisjointSets::idx_t gl::DisjointSets::find ( idx_t  elem)

Finds the set parent of an element.

Parameters
[in]elemElement whose set membership is to be found.
Returns
Set parent of given element's set.
void gl::DisjointSets::merge ( idx_t  one,
idx_t  two 
)

Merges two of the disjoint sets.

Parameters
[in]oneMember of set one.
[in]twoMember of set two.

Member Data Documentation

idx_t gl::DisjointSets::numElems_
private

Initial number of sets.

std::vector<idx_t> gl::DisjointSets::parent_
private

Parents of every element.

std::vector<idx_t> gl::DisjointSets::rank_
private

Ranks of every element in their set.


The documentation for this class was generated from the following file: