Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Unidad I
Semana 1
Arboles de búsqueda
Objetivo General
Arboles Binarios
Arboles de búsqueda
• Estructuras lineales
Son flexibles pero son secuenciales, un elemento
detrás de otro. Vectores, listas.
Estructuras de datos
• Estructuras no lineales
– Junto con los arboles, los grafos son estructuras
de datos no lineales
– Superan las desventajas de las listas
– Sus elementos se pueden recorrer de distintas
formas, no necesariamente uno detrás de otro
– Eliminar un árbol
– Recorrer un árbol
RAIZ
– Vacío, no tiene ningún nodo
– O constar de tres partes: A
• Un nodo raíz y B C
• Dos subárboles binarios:
D E F G
izquierdo y derecho
H I J
La definición de un árbol binario Sub. Izq. Sub. Der.
es recursiva
– La definición global depende de si
misma
Arboles Binarios Llenos
Un árbol de altura h, esta lleno si:
– Todas sus hojas están en el nivel h
Arboles Binarios
Sea T un árbol
– Si T esta vacío,
• Entonces T es un árbol binario lleno de altura 0
1
D K
2 8
B E H M
3 6 9 12
A C F J L
4 5 7 10 13
I
11
G-D-B-A-C-E-F-K-H-J-I-M
G-D-B-A-C-E
G-D-B-A-C
G-D-B-A
G-D-B
G-D
G
G-D-B-A-C-E-F
G-D-B-A-C-E-F-K
G-D-B-A-C-E-F-K-H
G-D-B-A-C-E-F-K-H-J
G-D-B-A-C-E-F-K-H-J-I
G-D-B-A-C-E-F-K-H-J-I-M-L
AB y NODOAB: Definición Formal
Arboles Binarios
• Cada nodo
– Tiene Contenido y
– Dos enlaces: árbol hijo izquierdo, árbol hijo
derecho
• Un nodo hoja, es aquel cuyos dos enlaces apuntan
a null
• De un árbol solo se necesita conocer su raíz
– La raíz, que es un nodo, puede definir al árbol
NODOAB: Operaciones
Son elementos de un árbol que:
– Almacenan información (contenido)
Arboles Binarios
Operaciones Básicas
– Crear un nuevo nodo hoja
– Eliminar hoja existente
– Saber si el nodo es o no hoja
Otras operaciones
– Consultas de los campos de un nodo
– Cambiar los campos de un nodo
AB: Mas Operaciones
Otras operaciones
Eliminar
Arboles Binarios
–
– Estado del Árbol
– Añadir y remover nodos
– Búsqueda por contenido
– Recorridos
RECORRIDOS: Implementación
• Como ya se reviso, las operaciones de recorrido son recursivas
• Ejemplo: EnOrden
Arboles Binarios
Caso Recursivo
Caso Básico Si !AB_EstaVacio(raiz)
Si AB_EstaVacio(raiz) AB_EnOrden(raiz->izq);
Terminar de recorrer Mostrar raiz->I
AB_EnOrden(raiz->der);
Operación EnOrden
Arboles Binarios
4
B C
2 6
D E F G
1 3 5 7
– Ejemplo:
(a+b) (a+b)*c *
+ + c
a b a b
Ejercicio
• Construya arboles de expresión para:
(X+(Y*Z)) * (A-B)
Arboles Binarios
a *
b -
+
c d
Evaluar una expresión aritmética
en infija
posfija
– Esto, ya sabemos como hacerlo
Crear un árbol de expresión
– Para esto se va a usar una pila y un árbol de
caracteres
Usando el árbol, evaluar la expresión
Crear un árbol de expresión
• Los operandos serán siempre nodos hoja del árbol
Arboles Binarios
A*B-C*D+H AB*CD*-H+ +
- H
D * *
-
C * A B C D
H *
B *
* C D
A A B C D
A B
Evaluación de la expresión
postfija
• Lo ideal es recuperar los dos operandos, el operador, y ejecutar la
opción
¿Que recorrido es el ideal?
Arboles Binarios
•
– PostOrden
Para evaluar el árbol:
Si el árbol tiene un solo nodo y este almacena un
operando
El resultado de la evaluación es el valor de ese
+
operando
- H Si no
A*
(Ay*BB) y- (C*D)
CyD+
(C*D) y HH
Árbol binario de búsqueda
• Los elementos en un árbol
Árbol de búsqueda
Valores:
<izq>::=<abb>
<der>::=<abb>
– Conjunto de elementos <clave>::<<dato>>|{<<dato>>}
– Dado un nodo p, <contenido>::<<dato>>|{<<dato>>}
Operaciones
– Son las mismas operaciones que para un AB
– Pero en este caso ya tenemos reglas suficientes que nos
indican como:
• Insertar
• Sacar
• Buscar Tipo Abstracto Datos
Creación de un ABB
• Un árbol de búsqueda debe mantener
Árbol de búsqueda
• Ejemplo:
– Construya árbol con los siguientes elementos:
• 8, 3, 1, 20, 10, 5, 4
3 20
1 5 10
4
Ejercicio
• Construya el árbol para almacenar:
Árbol de búsqueda
?
Búsqueda de un nodo
• Dada una clave, devolver el nodo
que la contiene
Árbol de búsqueda
• Se comienza en la raíz
– Si el árbol esta vacío
• No se encontró
– Si clave buscada es igual a la clave del
nodo evaluado Buscar(raiz,25)
Buscar(raiz,5)
• Se encontró
Si no
• Si la clave buscada es mayor a la del 8
nodo evaluado
– Buscar en el subarbol derecho 3 20
• Si no 1 5 10
– Buscar en el subarbol izquierdo
4 No existe
Inserción de un nodo
• Muy parecido a la búsqueda
Árbol de búsqueda
correcta 15>8…der
propiedades 15>10
3 …der 20
• Pasos: 1 5 10 Insertar
aqui
– Crear una nueva hoja 4
– Buscar en el árbol donde ponerla 15
– Búsqueda secuencial
– Búsqueda binaria
– Búsqueda por árbol binario
– Ordenación de burbuja
– Ordenación por selección
– Ordenación por inserción
– Ordenación de mezcla (Shell)
– Ordenación rápida (Quicksort)
¿Cuáles son ¿Por qué me
los temas interesaría en mi
estudiados vida profesional?
el día de
hoy?
¿Para que me
sirve y como lo
aplicaría en mi
vida personal?
Tópicos I
Unidad I
Semana 1
Arboles de búsqueda