2. El estudiante conoce las ventajas y desventajas del paradigma de programación lógica.
Aplica la programación lógica en la resolución de problemas reales. Diseña sistemas
expertos con programación lógica.
Logro específico de aprendizaje:
4. Árboles
• Se les llama estructuras dinámicas,
porque las mismas pueden cambiar tanto
de forma como de tamaño durante la
ejecución del programa.
• Y estructuras no lineales porque cada
elemento del árbol puede tener más de
un sucesor
5. ¿Qué es un árbol?
Un árbol consta de un conjunto finito de elementos, denominados
nodos y un conjunto finito de líneas dirigidas, denominadas ramas, que
conectan los nodos
6. Conceptos Básicos:
• Nodo: A,B,C,D,E,F,G,H,I,J,K,L,M,N,P,Q
• Nodo raíz: A
• Nodo hoja: B,C,H,I,P,Q,L,M,N
• Nodo interior o rama: D,E,F,G,J
• Peso del Árbol (total de nodos): 16
• Camino: camino ( A , Q ) = A – E – J – Q
• Longitud del camino: longitud_camino ( A , Q ) = nro. nodos (A,Q) -1 = 3
• Altura de nodo E: hojas hasta el nodo E = 2
• Nivel:
Nivel 1 : A
Nivel 2 : B,C,D,E,F,G
Nivel 3 : H,I,J,K,L,M,N
Nivel 4: P,Q
• Profundidad de un árbol (nro. máximo de niveles) : 4
7. Representación
Primer Hijo – Siguiente Hermano A
B C D E F G
H I J K L M N
P Q
A
B C D E F G
H I J K L M N
P Q
*hijo
*hermano
NULL
*hijo
NULL
*hijo
*hermano *hermano
*hijo
NULL
*hijo
NULL
*hermano
NULL
*hijo
*hermano
NULL
*hijo
*hermano
NULL
*hijo NULL
*hermano
*hermano *hermano
NULL
*hermano
NULL
*hermano
*hijo *hijo
*hijo
NULL
*hijo
*hijo
NULL
*hermano
NULL
*hijo
*hermano *hermano
NULL
*hijo
NULL
*hijo
NULL
*hermano
9. Árboles Binarios de Búsqueda ( ABB )
• Todos sus nodos ( excepto sus hojas ) se cumple que el dato
almacenado en él:
→ es mayor a todos los datos del subárbol izquierdo.
→ pero menor a todos los datos del subárbol derecho.
6
2 8
1 4
3
10
9
10. Árboles Binarios de Búsqueda ( ABB )
Ejemplo:
Construir un árbol binario de búsqueda para almacenar:
12, 8, 7, 9, 11, 16, 14, 18, 13, 15, 17, 30
11. Recorrido de Árboles Binarios
a) Recorrido Pre Orden
Visitar el nodo raíz
Recorrer el subárbol izquierdo en Pre orden
Recorrer el subárbol derecho en Pre Orden
b) Recorrido In Orden
Recorrer el subárbol izquierdo en In orden
Visitar el nodo raíz
Recorrer el subárbol derecho en In Orden
c) Recorrido Post Orden
Recorrer el subárbol izquierdo en Post orden
Recorrer el subárbol derecho en Post Orden
Visitar el nodo raíz
12. Ejemplo de recorrido:
a) Recorrido Pre Orden
Visitar el nodo raíz
Recorrer el subárbol izquierdo en Pre orden
Recorrer el subárbol derecho en Pre Orden
25
10 40
20 30
NULL
NULL NULL NULL
NULL
Raiz = 10
Izq = 10
20
NULL
NULL NULL
25
Raiz = 25
10
Izq = NULL
Der = 20
NULL NULL
Raiz = 20
Izq = NULL
Der = NULL
20
Der = 40
30
NULL
NULL
Raiz = 40
Izq =
Der = NULL
40
NULL
30
NULL NULL
Raiz = 30
Izq = NULL
Der = NULL
30
NULL
13. Ejemplo de recorrido:
b) Recorrido In Orden
Recorrer el subárbol izquierdo en In orden
Visitar el nodo raíz
Recorrer el subárbol derecho en In Orden
25
10 40
20 30
NULL
NULL
NULL NULL
NULL
Raiz = 10
Izq = 10
20
NULL
NULL NULL
10
Raiz = 25
20
Izq = NULL
Der = 20
NULL NULL
Raiz = 20
Izq = NULL
Der = NULL
25
Der = 40
30
NULL
NULL
Raiz = 40
Izq =
Der = NULL
30
NULL
30
NULL NULL
Raiz = 30
Izq = NULL
Der = NULL
40
NULL
14. Ejemplo de recorrido:
25
10 40
20 30
NULL
NULL NULL NULL
NULL
Raiz = 10
Izq = 10
20
NULL
NULL NULL
20
Raiz = 25
10
Izq = NULL
Der = 20
NULL NULL Raiz = 20
Izq = NULL
Der = NULL
30
Der = 40
30
NULL
NULL
Raiz = 40
Izq =
Der = NULL
40
NULL
30
NULL NULL Raiz = 30
Izq = NULL
Der = NULL
25
c) Recorrido Post Orden
Recorrer el subárbol izquierdo en Post orden
Recorrer el subárbol derecho en Post Orden
Visitar el nodo raíz
NULL