(lispkit disjoint-set)

Library (lispkit disjoint-set) implements disjoint sets, a mutable union-find data structure that tracks a set of elements partitioned into disjoint subsets. Disjoint sets are based on hashtables and require the definition of an equality and a hash function.

Symbol representing the disjoint-set type. The type-for procedure of library (lispkit type) returns this symbol for all disjoint set objects.

Returns #t if obj is a disjoint set object; otherwise #f is returned.

Returns a new empty disjoint set using eq as equality and eq-hash as hash function.

Returns a new empty disjoint set using eqv as equality and eqv-hash as hash function.

Returns a new empty disjoint set using eql as equality and hash as hash function. Instead of providing two functions, a new disjoint set can also be created based on a comparator.

Adds a new singleton set x to dset if element x does not exist already in disjoint set dset.

Looks up element x in dset and returns the set in which x is currently contained. Returns default if element x is not found. If default is not provided, disjoint-set-find uses #f instead.

Unifies the sets containing x and y in disjoint set dset.

Returns the number of sets in dset.

Last updated