Documentos de Académico
Documentos de Profesional
Documentos de Cultura
(BST)
Ing. Luis Humberto González
ü Es una estructura de datos jerárquica.
ü La relación entre los elementos es de uno a muchos.
¿Qué es un Árbol?
ü Nodo: Cada elemento en un árbol.
ü Nodo Raíz: Primer elemento agregado al árbol.
Nodo Raíz
B C
D E F G
K
H
Terminología
ü Nodo Padre: Se le llama así al nodo predecesor de un elemento.
ü Nodo Hijo: Es el nodo sucesor de un elemento.
ü Hermanos: Nodos que tienen el mismo nodo padre.
A Nodo Padre
B C
F y G son Nodos Hijos de C
F y G son hermanos
D E F G
K
H
Más terminología
ü Nodo Hoja: Aquel nodo que no tiene hijos.
B C
D E F G
D, H, F y K son Nodos Hojas
K
H
Más terminología
ü Subárbol: Todos los nodos descendientes por la izquierda o derecha de
un nodo.
A
B C
D E F G
Subárbol derecho de C
K
H
Subárbol izquierdo de C
Más terminología
Altura del A
Nivel 0
árbol = 4
B C
Nivel 1
D E F G
Nivel 2
K
H
Nivel 3
Altura y Niveles
Este tipo de árbol permite almacenar información ordenada.
Reglas a cumplir:
ü Cada nodo del árbol puede tener 0, 1 ó 2 hijos.
ü Los descendientes izquierdos deben tener un valor menor al
padre.
ü Los descendientes derechos deben tener un valor mayor al
padre.
Árbol Binario de
Búsqueda (ABB)
21 30
33 33
13 21
5 25 36 41
18 32
40 43
15
Ejemplos de ABB…
21 5
33 6
13 1
17 18 22 4
25 2
15 40
Implementación de un BST…
class BST
{
private:
NodeT *root;
public:
BST( ); // constructor
//otros métodos
}
Continuación…
Paso
¿El 25 es mayor o
menor que el 21? Buscar el 25
1 21
Paso
2 21 ¿El 25 es
13 33 mayor o menor
que el 33?
13 33
10 40
18 25
10 18 40
25
Paso
3 21
13 33
10 18 40
25
Encontrado
Implementación de la búsqueda
Reglas:
ü El valor a insertar no existe en el árbol.
ü El nuevo nodo será un Nodo Hoja del árbol.
Procedimiento
1. Buscar el Nodo Padre del nodo a agregar.
2. Agregar el nodo.
10 40 40
18 25 10 18 25
Paso Paso
3 21 4 21
33 13 33
13
18 40 10 18 40
10 25 25
Se encontró el Nodo
Padre
Ejemplo
Agregar el nodo
26
ü El orden de inserción de los datos, determina la forma del ABB.
ü ¿Qué pasará si se insertan los datos en forma ordenada?
ü La forma del ABB determina la eficiencia del proceso de búsqueda.
ü Entre menos altura tenga el ABB, más balanceado estará, y más
eficiente será.
Este árbol está 10
desbalanceado
porque los valores se 13
agregaron en el siguiente
orden:
18
10, 13, 18, 21, 25, 33
21
Comentarios 25
importantes.... 33
Si el nodo a eliminar es un:
ü Nodo hoja
• Buscar el Nodo Padre del nodo a borrar.
• Desconectarlo.
• Liberar el nodo.
ü Nodo con un hijo
• Buscar el Nodo Padre del nodo a borrar.
• Conectar el hijo con el padre del nodo a borrar.
• Liberar el nodo.
ü Nodo con dos hijos
• Localizar el nodo predecesor o sucesor del nodo a borrar.
• Copiar la información.
• Eliminar el predecesor o sucesor según sea el caso.
13 33
10 18 40
25
Desconectarlo y
liberar el nodo
10 18 25 40
13 33
25
29
10 18 40
29
27 30
Conectar el Nodo
Padre con el Nodo
27 30 Hijo y liberar el
nodo.
21
10 25 40 21 13
29 29 27
27 30
Predecesor
Uno a la DERECHA y todo a la IZQUIERDA
21
El sucesor de: es:
33 21 25
13
33 40
10 18 25 40
29 30
29
27 30
Sucesor
Eliminar el valor 21
Localizar el valor a
utilizando el predecesor
Paso
borrar Paso 21
1 21 2
13 33
13 33
10 40
40 18 25
10 18 25
Localizar el Predecesor
Copiar el valor del
Paso Predecesor al nodo que
Paso
contenía el valor a borrar
3 18 4 18
33 13 33
13
10 40 10 25 40
18 25 18
Desconectar y liberar el
13 33
13 33
10 40
40 18 25
10 18 25
Localizar el Sucesor
13 33
10 18 25 40
10 18 40
25 Desconectar y liberar el