12 lines
535 B
Markdown
12 lines
535 B
Markdown
|
# Lock-free parallel disjoint set data structure
|
||
|
|
||
|
This is a small self-contained C++11 implementation of the UNION-FIND data
|
||
|
structure with path compression and union by rank and a few extras It supports
|
||
|
concurrent `find()`, `same()` and `unite()` calls as described in the paper
|
||
|
|
||
|
*Wait-free Parallel Algorithms for the Union-Find Problem*
|
||
|
by Richard J. Anderson and Heather Woll
|
||
|
|
||
|
In addition, this class supports optimistic locking (`try_lock()`/`unlock()`)
|
||
|
of disjoint sets and a *combined* unite+unlock operation for pairs of sets.
|