La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

ÁRBOLES ESTRUCTURA DE DATOS II ING. CARLOS ALBERTO PULLAS.

Presentaciones similares


Presentación del tema: "ÁRBOLES ESTRUCTURA DE DATOS II ING. CARLOS ALBERTO PULLAS."— Transcripción de la presentación:

1 ÁRBOLES ESTRUCTURA DE DATOS II ING. CARLOS ALBERTO PULLAS

2 ÁRBOLES ES UN CONJUNTO FINITO DE ELEMENTOS, DE NOMBRES NODOS, QUE BIEN ESTAN SOLOS O ESTA FORMADOS POR UNA RAIZ O POR DOS SUB ARBOLES, UN IZQUIERDO Y UN DERECHO. SON ESTRUCTURAS DE DATOS NO LINELAES, RECORDANDO QUE LA LINEAL SE BASA EN UN NODO APUNTANDO A OTRO SIN EMBARGO LOS ARBOLES APUNTAN A UNO O MAS NODOS

3 ÁRBOLES - ELEMENTOS Nodo: Un árbol binario es un conjunto de elementos cada uno de los cuales se denomina nodo. Nodo hijo: cualquiera de los nodos apuntados por uno de los nodos del árbol. En la gráfica de la imagen 2, se tiene, ‘D’ y ‘M’ son hijos de ‘A’. Nodo padre: nodo que contiene un puntero al nodo actual. En el ejemplo, el nodo ‘A’ es padre de ‘D’ y ‘M’. Nodo raíz: nodo que no tiene padre. Este es el nodo que usaremos para referirnos al árbol. En el ejemplo anterior, es el nodo ‘A’. Nodo hoja: nodo que no tiene hijos. En el ejemplo hay varios: ‘L’, ‘K’, ‘I’, ‘E’. K DM L A I E

4 ÁRBOLES – PROPIEDADES (TAMAÑO) Orden: es el número potencial de hijos que puede tener cada elemento de árbol. De este modo, se dice que un árbol en el que cada nodo puede apuntar a otros dos es de orden dos, si puede apuntar a tres será de orden tres y así sucesivamente. Grado: el número de hijos que tiene el elemento con más hijos dentro del árbol. En el árbol del ejemplo en la imagen 2, el grado es dos, ya que tanto ‘A’ como ‘D’ y ‘M’ tienen dos hijos, y no existen elementos con más de dos hijos. Nivel: se define para cada elemento del árbol como la distancia a la raíz, medida en nodos. El nivel de la raíz siempre será cero y el de sus hijos uno. Así sucesivamente. En el ejemplo de la imagen 2, el nodo ‘D’ tiene nivel 1, el nodo ‘L’ tiene nivel 2. Altura: la altura de un árbol se define como el nivel del nodo de mayor nivel. Como cada nodo de un árbol puede considerarse a su vez como la raíz de un árbol, también se puede hablar de altura de ramas. K DM L A I E

5 ÁRBOLES – ORDEN

6 ÁRBOLES – ORDEN - TIPOS

7 ÁRBOLES – TIPOS K DM L A I E

8 ÁRBOLES BINARIOS

9 TIPOS ÁRBOLES FULL BINARY TREE: Todos los nodos del árbol binario tienen, o NINGÚN HIJO o SUS DOS HIJOS (ORDEN). COMPLETE BINARY TREE: Es un tipo especial de árbol en la que el ultimo nivel se puede prescindir de algunos hijos, es decir el padre del nodo hoja puede solo tener un hijo, la condición es que este sea hijo de la izquierda.

10 TIPOS ÁRBOLES

11 ARBOLES DEGENERADOS: Cada nodo solo tiene un hijo, se comporta como una lista y los hijos generalmente se almacenan solo del lado izquierdo, casi no en el lado derecho. K D L A I

12 TIPOS ÁRBOLES ARBOLES BALANCEADOS: Un árbol binario intenta mantener la profundidad de sus dos arboles la menor posible. El balanceo o equilibrio de un árbol hace que algunas operaciones sean mas eficientes Algunos arboles especiales se aprovechan del balanceo, dependiendo de que tipo de balanceo intentemos usar, se usa una regla u otra distinta.

13 RECORRIDO DE ÁRBOLES

14 RECORRIDO DE ANCHURA 16-8-24-3-13-19-7-21

15 RECORRIDO DE ÁRBOLES - PREORDEN Recorrer un árbol en preorden consiste en primer lugar, examinar el dato del nodo raíz, posteriormente se recorrer el subárbol izquierdo en preorden y finalmente se recorre el subárbol derecho en preorden. Esto significa que para cada subárbol se debe conservar el recorrido en preorden, primero la raíz, luego la parte izquierda y posteriormente la parte derecha. 7 515 3 10 14 17 Veamos como se realiza el recorrido paso a paso según la gráfica del árbol de la imagen 3: El recorrido inicia con el subárbol izquierdo, el primer nodo a visitar es la raíz que es el nodo 10, luego se visita el subárbol izquierdo con el nodo 5, posteriormente el 3, luego el nodo 1, sigue con el nodo 4, pasamos al nodo 7 y luego el 9. Continuamos con el recorrido del subárbol derecho en preorden, con la visita del nodo 15, luego el 14, se continúa con el 17, se visita el 16 y se finaliza con la visita del nodo 20. El resultado completo del recorrido en preorden para el árbol de la imagen es: 10 – 5 – 3 – 1 – 4 – 7 – 9 – 15 – 14 – 17 -16 – 20, Tal como se muestra en la imagen 3. 41 9 16 20

16 RECORRIDO DE ÁRBOLES - INORDEN Recorrer un árbol en Inorden consiste en primer lugar en recorrer el subárbol izquierdo en Inorden, luego se examina el dato del nodo raíz, y finalmente se recorre el subárbol derecho en Inorden. Esto significa que para cada subárbol se debe conservar el recorrido en Inorden, es decir, primero se visita la parte izquierda, luego la raíz y posteriormente la parte derecha. 7 512 3 10 11 15 3 – 5 – 7 – 10 – 11 – 12 - 15 Veamos como se realiza el recorrido paso a paso según la grafica del árbol de la imagen 4: El recorrido inicia con el subárbol izquierdo, el primer nodo a visitar es el 3 luego se visita el 5 y posteriormente el 7, con esto se garantiza que el recorrido del subárbol izquierdo se hizo en Inorden. Finalizado el recorrido del subárbol izquierdo se visita el nodo de la raíz, que para este caso es el numero 10. Solo queda recorrer el subárbol derecho en Inorden, es decir se visita el 11 luego el 12 y se finaliza con la visita del nodo 15 El resultado completo del recorrido en Inorden para el árbol de la imagen es:3 – 5 – 7 – 10 – 11 – 12 – 15, Tal como se muestra en la imagen.

17 RECORRIDO DE ÁRBOLES - POSTORDEN Recorrer un árbol en Postorden consiste en primer lugar en recorrer el subárbol izquierdo en Postorden, luego serecorre el subárbol derecho en Postorden y finalmente se visita el nodo raíz. Esto significa que para cada subárbol se debe conservar el recorrido en Postorden, es decir, primero se visita la parte izquierda, luego la parte derecha y por último la raíz. 7 512 3 10 11 15 3 – 7 – 5 – 11 – 15 – 12 - 10 Veamos como se realiza el recorrido paso a paso según la gráfica del árbol de la imagen 5. El recorrido inicia con el subárbol izquierdo, el primer nodo a visitar es el 3 luego se visita el 7 y posteriormente el 5 que es la raíz, con esto se garantiza que el recorrido del subárbol izquierdo se hizo en Postorden. Finalizado el recorrido del subárbol izquierdo se inicia la visita al subárbol derecho en Postorden, es decir, se visita el 11 luego el 15 y se finaliza con la visita del nodo 12 que sería la raíz de este subárbol. Solo queda recorrer la raíz del árbol que para este caso es el número 10. El resultado completo del recorrido en Postorden para el árbol de la imagen es: 3 – 7 – 5 – 11 – 15 – 12 – 10 Tal como se muestra en la imagen.

18 ÁRBOLES AVL Son ABB balanceados o equilibrados, y su denominación de AVL proviene de sus creadores rusos: Georgii Adelson – Velskii Yevgeniy Landis 7 512 3 10 11 15 Significado de Balanceado o Equilibrado Para todo nodo las alturas de su subárbol izquierdo y subárbol derecho debe ser igual o máximo diferir con 1. En el ejemplo este es un árbol AVL o árbol balanceado, debido a que la altura del subárbol izquierdo es (2) y la altura de su subárbol derecho es (3), por lo cual difiere en 1.

19 ÁRBOLES AVL 7 5 12 3 10 1115 7 5 12 3 10 11 15 Árbol Equilibrado Nodo 6 Sub árbol Izquierdo - Altura 3 Sub árbol Derecho - Altura 2 Árbol Degenerado Nodo 6 Sub árbol Izquierdo - Altura 3 Sub árbol Derecho - Altura 1

20 ÁRBOLES AVL – CONSIDERACIONES El Factor de Equilibrio: 1.Signo + … Derecha Mas alto 2.Signo - …. Izquierda mas Alto Un árbol binario es un AVL si y solo si cada uno de sus nodos tiene un equilibrio que se encuentre entre (-1, 0, +1) 5 12 10 13 +1 0 0 15 5 12 8 10 14 +1 +2 0 0 0 Desequilibrio hacia la Izquierda (Equilibrio > +1) 5 8 10 -2 0 Desequilibrio hacia la Derecha (Equilibrio < -1)

21 ÁRBOLES AVL - OPERACIONES 1.Insertar 2.Eliminar 3.Buscar Al insertar o Eliminar se comprueba si el Árbol esta desequilibrado, en caso de estarlo se realiza el balanceo. Como se balancea un árbol ? Mediante Rotaciones 1.Rotación Simple a la Derecha 2.Rotación Simple a la Izquierda 3.Rotación Doble a la Derecha 4.Rotación Doble a la Izquierda FACTOR DE EQUILIBRIO

22 ÁRBOLES AVL FACTOR DE EQUILIBRIO Formula: Diferencia entre las Alturas de Subárbol Derecho y el Subárbol Izquierdo. FE= Altura Subárbol Derecho - Altura Subárbol Izquierdo 7 512 3 10 11 15 -1= ASD(2)- ABI(3) 0 0 1 0

23 ÁRBOLES AVL – ROTACIÓN SIMPLE A LA DERECHA Esta rotación se usara cual el subárbol izquierdo de un nodo sea dos unidades mas alto que el derecho, es decir cuando su FE se -2, y además, la raíz del subárbol izquierdo tenga una FE de -1, es decir que este cargado a la izquierda.

24 ÁRBOLES AVL – ROTACIÓN SIMPLE A LA IZQUIERDA Esta rotación se usara cuando el subárbol derecho de un nodo sea 2 unidades mas alto que el izquierdo, es decir, cuando se FE sea de 2. Y además, la raíz del subárbol derecho tenga un FE de 1, es decir, que este cargado a la derecha.

25 ÁRBOLES AVL – CONSIDERACIONES El Factor de Equilibrio: 1.Signo + … Derecha Mas alto 2.Signo - …. Izquierda mas Alto Un árbol binario es un AVL si y solo si cada uno de sus nodos tiene un equilibrio que se encuentre entre (-1, 0, +1) 5 12 10 13 +1 0 0 15 5 12 8 10 14 +1 +2 0 0 0 Desequilibrio hacia la Izquierda (Equilibrio > +1) 5 8 10 -2 0 Desequilibrio hacia la Derecha (Equilibrio < -1)

26 ÁRBOLES AVL – ROTACIÓN DOBLE A LA DERECHA Esta rotación se usara cuando el árbol esta desequilibrado a la izquierda (FE > +1), y su hijo DERECHO tiene signo (-) o es menor a 0, hacemos la rotación doble derecha, que consiste hacer un primer movimiento rotativo a la derecha y seguidamente a la izquierda.

27 ÁRBOLES AVL – ROTACIÓN DOBLE A LA IZQUIERDA Esta rotación se usara cuando el árbol esta desequilibrado a la derecha (FE < -1), y su hijo IZQUIERDO tiene signo (+) o es mayor a 0, hacemos la rotación doble izquierda, que consiste hacer un primer movimiento rotativo a la izquierda y seguidamente a la derecha.

28 ÁRBOLES AVL – CLAVES FUNDAMENTALES Las claves, consideraciones o validaciones a la hora de aplicar el tipo de rotación en cada nodo analizado se resume de la siguiente manera: ROTACION SIMPLE DERECHA FE = -2 FE(nodo izq)= -1 ROTACION SIMPLE IZQUIERDA FE = 2 FE(nodo der)= 1 ROTACION DOBLE DERECHA FE = > +1 (2,3,4 …) FE(nodo der)= < 0 (-1,-2,-3…) Hacen una rotacion derecha y luego izquierda ROTACION DOBLE IZQUIERDA FE = < -1 (-2,-3,-4…) FE(nodo izq)= > 0 (1,2,3…) Hacen una rotacion izquierda y luego derecha


Descargar ppt "ÁRBOLES ESTRUCTURA DE DATOS II ING. CARLOS ALBERTO PULLAS."

Presentaciones similares


Anuncios Google