Class UnionFind<T>
java.lang.Object
org.jgrapht.alg.util.UnionFind<T>
- Type Parameters:
T- element type
An implementation of Union
Find data structure. Union Find is a disjoint-set data structure. It supports two operations:
finding the set a specific element is in, and merging two sets. The implementation uses union by
rank and path compression to achieve an amortized cost of $O(\alpha(n))$ per operation where
$\alpha$ is the inverse Ackermann function. UnionFind uses the hashCode and equals method of the
elements it operates on.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddElement(T element) Adds a new element to the data structure in its own set.Returns the representative element of the set that element is in.booleanTests whether two elements are contained in the same set.intReturns the number of sets.voidreset()Resets the UnionFind data structure: each element is placed in its own singleton set.intsize()Returns the total number of elements in this data structure.toString()Returns a string representation of this data structure.voidMerges the sets which contain element1 and element2.
-
Field Details
-
parentMap
-
rankMap
-
count
private int count
-
-
Constructor Details
-
UnionFind
-
-
Method Details
-
addElement
Adds a new element to the data structure in its own set.- Parameters:
element- The element to add.
-
getParentMap
-
getRankMap
-
find
-
union
Merges the sets which contain element1 and element2. No guarantees are given as to which element becomes the representative of the resulting (merged) set: this can be either find(element1) or find(element2).- Parameters:
element1- The first element to union.element2- The second element to union.
-
inSameSet
-
numberOfSets
public int numberOfSets()Returns the number of sets. Initially, all items are in their own set. The smallest number of sets equals one.- Returns:
- the number of sets
-
size
public int size()Returns the total number of elements in this data structure.- Returns:
- the total number of elements in this data structure.
-
reset
public void reset()Resets the UnionFind data structure: each element is placed in its own singleton set. -
toString
-