590 likes | 781 Views
Estructuras de datos y algoritmos. Oscar Bedoya. oscarbed@eisc.univalle.edu.co http://eisc.univalle.edu.co/~oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C. Arboles. Nodo La anatomía de un nodo en un árbol binario es la siguiente:. Puntero al subarbol izquierdo.
E N D
Estructuras de datos y algoritmos Oscar Bedoya. oscarbed@eisc.univalle.edu.co http://eisc.univalle.edu.co/~oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C.
Arboles Nodo La anatomía de un nodo en un árbol binario es la siguiente: Puntero al subarbol izquierdo Puntero al subarbol derecho
Árboles A Árbol con 8 nodos D B F H C E G
Arboles Raiz Es el nodo que no es apuntado por ningún otro nodo A D B F H C E G
Arboles Padre X es el padre de Y si X apunta a Y A A es el padre de B y de D B es el padre de H y C H no es padre de nadie A no es el padre de H! D B F H C E G
Arboles Hijo Y es el hijo de X si X apunta a Y A B y D son hijos de A H y C son hijos de B H no es un hijo de A D B F H C E G
Arboles Hoja Una hoja es un nodo que no tiene hijos A D B F H C E G
Arboles Nodo no terminal Es un nodo que no es hoja A D B F H C E G
Arboles Camino Es el conjunto de nodos que se deben visitar con el propósito de llegar a un nodo especifico Un árbol siempre se examina hacia abajo Los apuntadores derecho e izquierdo de cualquier nodo apuntan al árbol derecho o izquierdo que siguen a ese nodo. Nunca apuntan a los nodos precedentes
Árboles A El camino A->D->F se presenta en el árbol El camino G->E->D->A->B->C no se da en el camino D B F C E G
Arboles Longitud Es el número de nodos que se deben recorrer para pasar de un nodo a otro
Árboles A La longitud entre A y G es 3 La longitud entre A y A es 0 La longitud entre D y F es 1 D B F C E G
Arboles Ancestro Un nodo X es ancestro de Y si existe una camino ente X y Y
Árboles A Es G un ancestro de B? Es B un ancestro de E? Es A un ancestro de F? D B F C E G
Arboles Nivel Cada nodo tiene un nivel dentro de un árbol binario. Por definición el nodo raíz tiene un nivel 0 y los demás nodos tiene el nivel de su padre más 1
Árboles Nivel 0 A D Nivel 1 B F Nivel 2 C E G Nivel 3
Arboles Grado de un nodo Es el número de hijos El grado de un nodo terminal siempre es 0 En un árbol binario el grado de cada nodo varia entre 0 y 2
Árboles A El grado de A es 2 El grado de D es 2 El grado de E es 1 El grado de C, G y F es 0 D B F C E G
Arboles Altura de un árbol Es el nivel de la hoja o de las hojas que están más distantes de la raíz
Árboles A La altura del árbol es 3 D B F C E G
Árboles A Cuántos nodos tiene Cuál es el nodo raíz Cuáles son los nodos no terminales Cuáles son las hojas Cuál es el grado del nodo E Cuál es el nivel del nodo I Cuál es la longitud entre A y K Se presente el camino B-A-D-F Cuál es la altura del árbol D B F C E H I J G K
Arboles Árbol binario Un árbol binario es un conjunto finito de elementos que está vacío o dividido en tres subconjuntos separados. El primer subconjunto contiene un elemento único llamado raíz del árbol. Los otros dos subconjuntos son por si mismos árboles binarios y se les conoce como subárboles izquierdo y derecho del árbol original. Un subárbol izquierdo o derecho puede estar vacío. Cada elemento de un árbol binario se denomina nodo del árbol
Árboles A Es este un árbol binario? D B E F C G J
Arboles Árbol estrictamente binario Si cada nodo que no es una hoja en un árbol binario tiene subárboles izquierdo y derecho que no están vacíos, se clasifica como árbol estrictamente binario
Árboles A Es este un árbol estrictamente binario? D B E F G J
Árboles A Es este un árbol estrictamente binario? D B E H F G J
Arboles Árbol binario completo Un árbol que es estrictamente binario y tiene todas sus hojas en el nivel d, donde d es la profundad del árbol, es un árbol binario completo
Árboles A Es este un árbol binario completo? D B E F J G
Árboles A Es este un árbol binario completo? D B H G E F
Arboles • Árbol binario completo • Un árbol binario completo tiene 2l nodos en cada nivel l, donde l varia entre 0 y d • totalNodos = 20 + 21 + 22 + . . . + 2d = = 2d+1 -1 • Cuántos nodos no terminales tiene un árbol binario completo? • Cuál es la profundidad de un árbol binario completo con T nodos?
Arboles Árbol de búsqueda binaria Un árbol binario en el que los elementos del subárbol izquierdo de un nodo n son menores que el contenido de n, y que todos los elementos en el subárbol derecho de n son mayores o iguales que el contenido de n se denomina árbol de búsqueda binaria Si un árbol de búsqueda binaria se recorre en orden (izquierdo, raíz, derecho), los números se imprimen en orden ascendente
Árboles 20 Es este un árbol de búsqueda binaria? 30 1 24 34 21 26
Arboles Árbol balanceado Un árbol binario balanceado o AVL, es aquel en el que las alturas de los dos subárboles de cada nodo nunca difieren en más de 1. El balance de un nodo en un árbol binario se define como la altura de su subárbol izquierdo menos la altura de su subárbol derecho
Arboles Árbol balanceado Un árbol binario balanceado o AVL, es aquel en el que el balance para cada nodo es -1, 0 ó 1
Árboles -1 A Se indican los balances para cada nodo 1 1 D B -1 0 0 E B F 0 G
Árboles A Indique los balances de cada nodo, y determine si el árbol es o no, AVL D B F B E G
Árboles -1 A -2 0 D B 0 0 -1 F B E 0 G
Árboles A Indique los balances de cada nodo, y determine si el árbol es o no, AVL D B F B E G
Árboles -1 A 1 1 D B 0 -1 0 F B E 0 G
Árboles A Indique los balances de cada nodo, y determine si el árbol es o no, AVL D B F B E G E G E
Árboles -2 A 0 1 D B +2 0 1 F C E 0 -1 1 F G H 0 0 J I
Árboles • Formas de recorrer un árbol • Preorden • Inorden • posorden
Árboles Preorden Examinar el dato del nodo raíz Recorrer el árbol izquierdo en preorden Recorrer el árbol derecho en preorden
Árboles A Recorrer el árbol en preorden C B D E F G
Árboles A ABDECFG C B D E F G
Árboles 10 Recorrer el árbol en preorden 15 5 17 3 14 7 1 4 9 16 20
Árboles 10 10-5-3-1-4-7-9-15-14-17-16-20 15 5 17 3 14 7 1 4 9 16 20
Árboles Inorden Recorrer el árbol izquierdo en inorden Examinar el dato del nodo raíz Recorrer el árbol derecho en inorden
Árboles Recorrer el árbol en inorden 10 12 5 15 3 11 7
Árboles 10 3-5-7-10-11-12-15 12 5 15 3 11 7