Implementação C da estrutura de dados union-find (com conjuntos como árvores). Esta implementação apresenta compactação de caminho e união por classificação, portanto o tempo amortizado por operação é O(alfa(n)).
union_find_elem_t * make_set ( void * element );
union_find_elem_t * find ( union_find_elem_t * element );
union_find_elem_t * merge ( union_find_elem_t * a , union_find_elem_t * b );