libFirm
|
Union-Find datastructure. More...
Functions | |
static void | uf_init (int *data, size_t n_elems) |
Call this to initialize an array of count elements to be used by the union find functions. | |
static int | uf_union (int *data, int set1, int set2) |
Merge 2 sets (union operation). | |
static int | uf_find (int *data, int e) |
Finds the representative for the set with member e . |
Union-Find datastructure.
This implementation uses weighted sets and path compression which results in (nearly) O(n) complexity for n find and union operations
|
inlinestatic |
Finds the representative for the set with member e
.
The representative of a set is unique, so if the find operations finds the same/different representatives, then the elements are in the the same/different sets.
data | The union find data |
e | The element |
e
Definition at line 102 of file unionfind.h.
|
inlinestatic |
Call this to initialize an array of count
elements to be used by the union find functions.
data | The array (you have to allocate it yourself) |
n_elems | number of elements handled by the datastructure |
Definition at line 49 of file unionfind.h.
|
inlinestatic |
Merge 2 sets (union operation).
Note that you have to pass the representatives of the sets and not just random elements
data | The union find data |
set1 | Representative of set1 |
set2 | Representative of set2 |
Definition at line 66 of file unionfind.h.