TDA árbol binario de búsqueda

Anuncio
Estructuras de Datos y
Algoritmos
TDA Arbol
Binario de
Búsqueda
Difinición Recursiva
• Arbol binario de búsqueda
– Sea n un nodo de un arbol binario de búsqueda
– La clave de n es mayor que todas las etiquetas
en su subarbol izquierdo TI
– La clave de n es menor que todas las etiquetas
en su subarbol derecho TD
– TI y TD son árboles binarios de búsqueda
TDA ABB
• TDA Arbol binario de búsqueda
–
–
–
–
–
Crear arbol vacío
Insertar item con clave dada
Remover item con determinada clave
Inspeccionar item con determinada clave
Recorrer arbol en preorden, enorden o
posorden.
Algoritmos para las operaciones
del TDA ABB
Método auxiliar search
search(bst, clave)
if(bst vacío)
// la clave no está
else if(clave == bst.key())
// encontró el récord
else if(clave < bst.key())
searck(subarbol izquierdo, clave)
else
search(suarbol derecho, clave)
insertar
Seach(root, Frank)
Se detiene aquí
Bob
Frank
Alan
Ellen
Frank
Remover
• Buscar clave
• Si clave está en una hoja, se remueve.
• Problema: no se puede remover un nodo
interno así como así.
• Dos casos:
– Nodo tiene un solo hijo
– Nodo tiene dos hijos
Remover nodo con un hijo
Remover N
P
N
L
P
L
Remover con dos hijos
P
N
L
R
Descargar