You are on page 1of 40

Estructura de datos No Lineales

Eliminacion de Nodos
Arboles AVL
Arboles Balanceados
Factor de Equilibrio

RBOL ABB
Un rbol binario de bsqueda es un tipo
particular de rbol binario que presenta una
estructura de datos en forma de rbol usada
en informtica.

UTN-FICA-CISIC 2012

UTN-FICA-CISIC 2012

OPERACIONES
Todas las operaciones realizadas
sobre rboles binarios de bsqueda
estn basadas en la comparacin de
los elementos o clave de los mismos.

UTN-FICA-CISIC 2012

BSQUEDA
La bsqueda consiste acceder a la raz del
rbol, si el elemento a localizar coincide con
ste la bsqueda ha concluido con xito.
Si el elemento es menor se busca en el
subrbol izquierdo y si es mayor en el
derecho.
La bsqueda de un elemento en un ABB (rbol
Binario de Bsqueda) se puede realizar de dos
formas, iterativa o recursiva.
UTN-FICA-CISIC 2012

BSQUEDA
Si se alcanza un nodo hoja y el elemento no ha
sido encontrado se supone que no existe en el
rbol.

ELIMINACIN
La operacin de borrado no es tan sencilla
como las de bsqueda e insercin. Existen
varios casos a tener en consideracin.

UTN-FICA-CISIC 2012

Borrar un nodo sin hijos nodo hoja:


simplemente se borra y se establece a nulo el
apuntador de su padre.

UTN-FICA-CISIC 2012

Caso: Eliminar Nodo hoja


Eliminar el valor 25

Paso
1

21

33

13

10

18

25

Nodo Padre
localizado

40

Paso
2

21
33

13

10

18

25

40
Desconectarlo y
liberar el nodo

UTN-FICA-CISIC 2012

Borrar un nodo con un subrbol hijo: se borra


el nodo y se asigna su subrbol hijo como
subrbol de su padre.
Eliminar Nodo 70.

UTN-FICA-CISIC 2012

Caso: Eliminar Nodo con un hijo


Paso
1

Eliminar el valor 25

21

33

13

10

Nodo Padre
localizado

18

40

25

Paso
2

29

21
33

13
25

27

30

10

40

18
29
27

UTN-FICA-CISIC 2012

30

Conectar el Nodo
Padre con el Nodo
Hijo y liberar el
nodo.

Eliminar nodo con dos hijos


1. Localizar el nodo predecesor o sucesor del
nodo a borrar.
El PREDECESOR es el Mayor de los
Menores.
El SUCESOR es el Menor de los Mayores.
Para la implementacin es igual de eficiente
programar la bsqueda del predecesor que
del sucesor.
2. El valor del Predecedor (o sucesor) se copia al
nodo a borrar.
3. Eliminar el nodo del predecesor (o sucesor
segn sea el caso).

UTN-FICA-CISIC 2012

Caso: Eliminar Nodo con dos hijos


Eliminar el valor 21
utilizando el predecesor

Paso
1

Localizar el valor a
borrar

21

18

40

25

21
33

13

33

13

10

Paso
2

10

40

25

18

Localizar el Predecesor

Paso
3

Copiar el valor del


Predecesor al nodo que
contena el valor a borrar

18

Paso
4

18
33

13
33

13

10
10

18

25

UTN-FICA-CISIC 2012

18

25

40

40
Desconectar y liberar el
nodo del Predecesor

Caso: Eliminar Nodo con dos hijos


Eliminar el valor 21
utilizando el Sucesor

Paso
1

Localizar el valor a
borrar

21

18

40

25

21
33

13

33

13

10

Paso
2

10

40

25

18

Localizar el Sucesor

Paso
3

Copiar el valor del


Sucesor al nodo que
contena el valor a borrar

25

Paso
4

25
33

13
33

13

10
10

18

25

UTN-FICA-CISIC 2012

40

18

25

40
Desconectar y liberar el
nodo del Sucesor

Arboles balanceados
Es un ABB que debe cumplir la siguiente
condicion:
Para todo nodo T del arbol, al altura de los
subarboles derecho e izquierdo no deben
diferir en mas de una unidad

Factor de Equilibrio
Para saber si un arbol esta desbalanceado o no,
se debe manejar informacion relativa al equilibrio
de cada nodo del arbol, esto es a traves del factor
de equilibrio, el cual consiste en:
La altura del subarbol derecho menos la altura
del subarbol izquierdo
FE puede tomar los valores -1, 0, 1
Si tomara valores -2 2, debera reestructurarse
el arbol

FE del nodo 65 es -1, debido a la altura del sub


arbol derecho =2, menos la latura del sub
arbol izquierdo= 3
El FE de 45 se calcula 2-1=1

Reestructuracin de un arbol
balanceado
Reestructurar el arbol significa rotar los nodos
del mismo para llevarlo a un estado de
equilibrio.
La rotacion puede se simple o compuesta
Simple: Involucra dos nodos (Se puede hacer
por las ramas derechas DD i izquierdas II)
Compuesta: Involucra tres nodos (Se puede
realizar por las ramas Derecha Izquierda DI o
Izquierda Derecha ID)

Eliminacion en arboles balanceados

Eliminar los siguientes nodos, de forma que permanezca balanceado el arbol

You might also like