https://github.com/maurodelazeri/disjoint
disjoint set - union / find
https://github.com/maurodelazeri/disjoint
disjoint-set disjoint-sets disjoint-unions union-find
Last synced: 7 months ago
JSON representation
disjoint set - union / find
- Host: GitHub
- URL: https://github.com/maurodelazeri/disjoint
- Owner: maurodelazeri
- Created: 2019-01-14T02:03:02.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2019-01-22T23:50:33.000Z (over 6 years ago)
- Last Synced: 2025-01-05T09:22:31.638Z (9 months ago)
- Topics: disjoint-set, disjoint-sets, disjoint-unions, union-find
- Language: Go
- Size: 1.95 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# disjoint
disjoint algorithm to union and find sets based on map and list.
## Install
`$ go get github.com/maurodelazeri/disjoint`
## Usage
```go
uf := union_find.New()uf.Union(1, 2, 3)
fmt.Println(uf.Find(1)) // Prints [1, 2, 3]
fmt.Println(uf.Find(2)) // Prints [1, 2, 3]
fmt.Println(uf.Find(2, 3)) // Prints [1, 2, 3]
fmt.Println(uf.InSameSet(1, 2)) // Prints true
fmt.Println(uf.InSameSet(1, 3)) // Prints true
fmt.Println(uf.InSameSet(2, 3)) // Prints trueuf.Union(4, 5, 6)
fmt.Println(uf.Find(4)) // Prints [4, 5, 6]
fmt.Println(uf.Find(5)) // Prints [4, 5, 6]
fmt.Println(uf.Find(4, 6)) // Prints [4, 5, 6]
fmt.Println(uf.InSameSet(4, 5)) // Prints true
fmt.Println(uf.InSameSet(4, 6)) // Prints true
fmt.Println(uf.InSameSet(5, 6)) // Prints truefmt.Println(uf.Find(1, 6)) // Prints [1, 2, 3, 4, 5, 6]
fmt.Println(uf.InSameSet(1, 4)) // Prints false
fmt.Println(uf.InSameSet(1, 5)) // Prints false
fmt.Println(uf.InSameSet(2, 6)) // Prints falseuf.Union(2, 6)
fmt.Println(uf.Find(1)) // Prints [1, 2, 3, 4, 5, 6]
fmt.Println(uf.Find(2)) // Prints [1, 2, 3, 4, 5, 6]
fmt.Println(uf.Find(3)) // Prints [1, 2, 3, 4, 5, 6]
fmt.Println(uf.Find(4)) // Prints [1, 2, 3, 4, 5, 6]
fmt.Println(uf.Find(5)) // Prints [1, 2, 3, 4, 5, 6]
fmt.Println(uf.Find(1, 6)) // Prints [1, 2, 3, 4, 5, 6]fmt.Println(uf.InSameSet(1, 4)) // Prints true
fmt.Println(uf.InSameSet(1, 5)) // Prints true
fmt.Println(uf.InSameSet(2, 6)) // Prints truefmt.Println(uf.RemoveSet(1)) // Prints [1, 2, 3, 4, 5, 6]
fmt.Println(uf.Find(3)) // Prints [ ]
```