Programación General > ADA

 Encontrar el sucesor simetrico

(1/1)

jer0Me:
Buenas, tengo un problema con una función. Esta función consiste en buscar el sucesor simetrico de un arbol binario de busqueda al extraer un elemento que es de grado dos. y el problema es que no se me ocurre como adoptar el hijo derecho del elemento a extraer, ya que dentro del hijo derecho del elemento a extraer se encuentra su sucesor. Gracias de antemano.


--- Código: Text ---            --------------------------------------------------------------            -- El sucesor de un nodo de grado 2 es el primer nodo hacia --            -- la izquierda, a partir del hijo derecho, que no tenga    --            -- hijo izquierdo                                           --            -- El sucesor adopta a los hijos del nodo a extraer y el    --            -- hijo derecho del sucesor es adoptado por el padre del    --            -- sucesor (salvo que el sucesor sea el hijo derecho del    --            -- nodo a extraer)                                          --            --------------------------------------------------------------         function Sucesor_Simetrico(A: Arbol_Bin_Bus) return Arbol_Bin_Bus is            function Min (A : Arbol_Bin_Bus) return Arbol_Bin_Bus is            begin               if A.Hijos (1) = null then                  return A;               else                  return Min (A.Hijos (1));               end if;            end Min;            S : Arbol_Bin_Bus;         begin            S := Min (A.Hijos (2));            S.Hijos (1) := A.Hijos (1);            return S;         end Sucesor_Simetrico; 

Navegación

[0] Índice de Mensajes

Ir a la versión completa