Awesome Go

dsu

CategoryData Structures and Algorithms
SubcategorySets
Stars0

Disjoint Set data structure implementation in Go

About dsu

dsu

GoDoc Go Report Card Build Status codecov Mentioned in Awesome Go

Implementation of the Disjoint-Set data structure. The Disjoint-Set, Also called a Union-Find or Merge-Find set, is a data structure that stores a collection of disjoint (non-overlapping) sets. Equivalently, it stores a partition of a set into disjoint subsets. It provides operations for adding new sets, merging sets (replacing them by their union), and finding a representative member of a set. The last operation allows to find out efficiently if any two elements are in the same or different sets.

Installation

go get github.com/ihebu/dsu

Documentation

You can check the code documentation here

Usage Example


// Create a new disjoint-set
d := dsu.New()

// Add the elements 1, 2, 3 to the set
d.Add(1)
d.Add(2)
d.Add(3)

// The set is now {1}, {2}, {3}

// Unite the sets {1}, {2} 
d.Union(1, 2)

// The set is now {1, 2}, {3}

// Find the representative element of each set
d.Find(1) // returns 2
d.Find(2) // returns 2
d.Find(3) // returns 3

// Check the existence of an element in the set
d.Contains(2) // returns true
d.Contains(54) // returns false

// Note : you can add elements of different type in the set
// Example

d.Add("hello")
d.Add(34.5)

d.Union("hello", 34.5)

Frequently Asked Questions

What is dsu?

dsu is a Data Structures and Algorithms library for the Go programming language. Disjoint Set data structure implementation in Go

How do I install dsu?

Install dsu with the Go module system using `go get ihebu/dsu`. Check the repository for the current installation instructions.

What category does dsu belong to?

dsu is listed under Data Structures and Algorithms, specifically Sets.

← Back to Sets