public class Components<V>
extends java.lang.Object
Constructor and Description |
---|
Components(java.util.Collection<? extends java.util.Collection<V>> partition) |
Components(V[] nodes) |
Modifier and Type | Method and Description |
---|---|
boolean |
areInSameComponent(int nodeIndexA,
int nodeIndexB) |
boolean |
areInSameComponent(V nodeA,
V nodeB)
Preferably use the integer variant.
|
int |
getComponentOf(int node) |
int |
getComponentOf(V node) |
java.util.List<java.util.Set<V>> |
getComponents() |
java.lang.Iterable<java.lang.Integer> |
getNodeIndicesOfComponent(int componentIndex) |
int |
getNumberOfComponents() |
void |
mergeComponents(int componentA,
int componentB)
Merge two components.
|
void |
mergeComponentsOf(int indexA,
int indexB)
Merge the components of the two nodes.
|
void |
mergeComponentsOf(V nodeA,
V nodeB)
Merge the components of the two nodes.
|
int[] |
normalise()
Put the components in increasing order 0...n
|
public Components(V[] nodes)
public Components(java.util.Collection<? extends java.util.Collection<V>> partition)
public void mergeComponentsOf(int indexA, int indexB)
indexA
- indexB
- public void mergeComponentsOf(V nodeA, V nodeB)
nodeA
- nodeB
- public void mergeComponents(int componentA, int componentB)
componentA
- componentB
- public boolean areInSameComponent(int nodeIndexA, int nodeIndexB)
public boolean areInSameComponent(V nodeA, V nodeB)
nodeA
- nodeB
- public int getComponentOf(int node)
public int getComponentOf(V node)
public int getNumberOfComponents()
public java.util.List<java.util.Set<V>> getComponents()
public java.lang.Iterable<java.lang.Integer> getNodeIndicesOfComponent(int componentIndex)
public int[] normalise()