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.
17 lines
550 B
17 lines
550 B
package dev.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.
|
|
*/
|
|
interface DisjointSet<T> : Iterable<DisjointSet.Partition<T>> {
|
|
interface Partition<T> : Iterable<T>
|
|
|
|
val elements: Int
|
|
val partitions: Int
|
|
|
|
fun add(x: T): Partition<T>
|
|
operator fun get(x: T): Partition<T>?
|
|
fun union(x: Partition<T>, y: Partition<T>)
|
|
}
|
|
|