3.2. Relaciones de equivalencia.
El procedimiento Unión supone que raiz1 y raiz2 representan las clases de equivalencia (son raíces de los árboles). ¿Cómo sería la operación para unir las clases asociadas a dos elementos?
En el caso medio la operación Encuentra es de orden menor que O(log n). Sin embargo, en el peor caso los árboles son cadenas y el coste es O(n).
Debemos garantizar que los árboles sean lo más anchos posible.
procedure Inicia (var C: Relacion_equiv);
for i:= 1 to num_elems do
procedure Unión (var C: Relacion_equiv; raiz1, raiz2: Tipo_conj);
function Encuentra (x: Tipo_elemento; var C: Relacion_equiv): Tipo_conj;
return Encuentra (C[x], C);