Open-source multiplayer game server compatible with the RuneScape client https://www.openrs2.org/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
openrs2/util/src/main/kotlin/org/openrs2/util/collect/DisjointSet.kt

17 lines
599 B

package org.openrs2.util.collect
/**
* A data structure containing a set of elements partitioned into a number of
* non-overlapping subsets. New elements belong to singleton subsets. The
* [union] function combines two subsets together into a single larger subset.
*/
public interface DisjointSet<T> : Iterable<DisjointSet.Partition<T>> {
public interface Partition<T> : Iterable<T>
public val elements: Int
public val partitions: Int
public fun add(x: T): Partition<T>
public operator fun get(x: T): Partition<T>?
public fun union(x: Partition<T>, y: Partition<T>)
}