Implementación en C de la estructura de datos union-find (con conjuntos como árboles). Esta implementación presenta compresión de ruta y unión por rango, por lo que el tiempo amortizado por operación es 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 );