# disjoint-sets: three union-find implementations
[](https://travis-ci.org/tov/disjoint-sets-rs)
[](https://crates.io/crates/disjoint-sets)
[](LICENSE-MIT)
[](LICENSE-APACHE)
This library provides three disjoint set data structures:
- `UnionFind`: An array-based union-find
where clients represent elements as small unsigned integers.
- `UnionFindNode`: A tree-based
union-find where each set can have associated ata, and where
clients represent elements as opaque tree nodes.
- `AUnionFind`: Like `UnionFind`, but `Sync` for sharing between
threads.
All three perform rank-balanced path compression à la Tarjan, using
interior mutability.
## Usage
It’s [on crates.io](https://crates.io/crates/disjoint-sets), so it can be
used by adding `disjoint-sets` to the dependencies in your project’s
`Cargo.toml`:
```toml
[dependencies]
disjoint-sets = "*"
```