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

Slides:



Advertisements
Presentaciones similares
5. Estructuras no lineales estáticas y dinámicas
Advertisements

ESTRUCTURA DE DATOS Unidad 04 TDA no lineales - Árboles.
Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.
Programación y Estructuras de Datos
Tema 4 Árboles. Conceptos Generales..
Árboles balanceados AVL
Cont. Arbol Binario de Búsqueda (2). Sobre los recorridos Las versiones recursivas de los recorridos son costosas debido a la gran cantidad de llamadas.
Tema Nº4.
Árboles.
Estructuras de Datos MC Beatriz Beltrán Martínez.
Tópicos I Árboles, montículos y grafos
ARBOLES ESTRUCTURAS DE DATOS.
Estructura de Datos y Algoritmos
Arboles M.C. José Andrés Vázquez FCC/BUAP
Árboles B M.C. José Andrés Vázquez Flores Estructuras de Datos / Primavera 2014.
Almacenamiento y Recuperacion de Información- Arbol AVL
ÁRBOLES BINARIOS DE BÚSQUEDA BALANCEADOS
Estructuras de Datos1 ABB´s balanceados por peso Balance perfecto Para cada nodo, el número de nodos del subárbol izquierdo y el número de nodos del subárbol.
Árboles Recomendado: 1. Nivelación Funciones
Con el objeto de mejorar el rendimiento en la búsqueda surgen los árboles balanceados. La idea central de estos es la de realizar reacomodó o balanceos.
1 Arboles AVL Introducción Arboles AVL (Adel’son-Vel’skii and Landis.
Estructura de Datos M.C. José Andrés Vázquez Flores FCC/BUAP
Estructura de Datos M.C. J. Andrés V. F. FCC/BUAP
1 B-Trees y AVL Trees. 2 AVL Trees: Topicos Balance en los Trees Chequear el Balance Insertar Single y Doble Rotaciones.
Algoritmos y estructura de datos en I.O.
ARBOLES GENERALIZADOS
Arboles Binarios.
A YUDANTÍA 5: A RBOLES Carlos Pulgar R. Mail: Página Ayudantía:
Árboles Binarios * Recorridos * Tipo
Árboles Equilibrados Estructuras de Datos MC Beatriz Beltrán Martínez Primavera 2015.
M.C. Meliza Contreras González
ESTRUCTURA DE DATOS II Ing. Freddy Melgar Algarañaz Árboles Binarios *Recorridos *Tipo.
Arboles Binarios: AVL (Adelson – Velskii - Landis)
Bases de datos II Universidad del Cauca Ing. Wilson Ortega.
Presentado por: Yuli Dominguez. Portal Educa Panamá. Sistema de numeración.
Programación lógica funcional Árboles Binarios.  El siguiente trabajo trata sobre la estructura de datos no lineales llamada árbol. Esta estructura se.
Números enteros y Racionales
Árboles binarios. Algoritmos básicos
Universidad Autónoma del Estado de México
Tema 3 Árboles. Conceptos Generales. Curso 2014/2015 ETSISI UPM.
Montículos Binarios (Binary Heaps)
Árboles Binarios * Recorridos * Tipo
TAD’s ARBOLES GENERALIZADOS
Tema 4 Árboles Prof. Oscar Adolfo Vallejos.
Estructuras de Datos MC Beatriz Beltrán Martínez Primavera 2016
Heaps.
ÁRBOLES El árbol es una estructura de datos muy importante en informática y en ciencias de la computación. Los árboles son estructuras no lineales,
Estudio del movimiento
Búsqueda por profundidad iterativa
Árboles clase 6 Apoyo de Práctica. Resumen ●Árboles ○Concepto ○Características ○Dinámica ○Recorridos o barridos. ●Ejercicio Sugerido.
Arboles M.C. José Andrés Vázquez FCC/BUAP
Árboles (Trees) Árboles Árboles binarios Recorridos de árboles
Árboles Binarios de Búsqueda (ABB)
Estructura de Datos M.C. J. Andrés V. F. FCC/BUAP
Arboles M.C. José Andrés Vázquez FCC/BUAP
TEMAS *Arboles Binarios *listas Abiertas y Cerradas - Inserción - Recorrido - Eliminación *Pilas - Concepto - Inserción - Recorrido -
Listas ligadas Dra. María de Lourdes López García
Estructuras de Datos MC Beatriz Beltrán Martínez Primavera 2018
UNIDAD 3 LISTAS LISTAS CIRCULARES Integrantes: Galmiche Vera Orlando Mandujano González Ramón Enrique Salvador Magaña Kelyn Osmara.
Estructura de Datos M.C. José Andrés Vázquez Flores FCC/BUAP Árboles AVL Objetivos:  Entender la importancia que tiene el balanceo en un ABB.  Describir.
Arboles. Árboles ¿Qué son? Son Estructuras de datos “No lineales”” ¿Para que se utilizan? Representar Fórmulas Algebraicas Organizar Objetos Inteligencia.
ÁRBOLES DE EXPRESION. Un árbol de expresión sirve para evaluar expresiones del tipo: (a+b)*c/d Para que un árbol represente una expresión se deben tomar.
MAPA DE NAVEGACIÓN INECUACIONES UNIDAD 8 Índice Teoría Y Ejemplos.
Árboles Binarios Estructuras de Datos.
Árboles Binarios Recorridos.
MATEMÀTICA 1º BGU INECUACIONES Edwin Quinchiguango PROFESOR COLEGIO MUNICIPAL NUEVE DE OCTUBRE.
Árboles Binarios Estructuras de Datos. Las estructuras dinámicas son las en la ejecución varia el número de elementos y uso de memoria a lo largo del.
UNIDAD 1 Análisis semántico 1.1 ARBOLES DE EXPRESIONES.
M.C. José Andrés Vázquez Flores
Grafos. Concepto: Un Grafo no es más que un conjunto de nodos o vértices que se encuentran relacionados con unas aristas. Además, los vértices tienen.
Transcripción de la presentación:

ÁRBOLES ESTRUCTURA DE DATOS II ING. CARLOS ALBERTO PULLAS

Á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

Á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

Á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

ÁRBOLES – ORDEN

ÁRBOLES – ORDEN - TIPOS

ÁRBOLES – TIPOS K DM L A I E

ÁRBOLES BINARIOS

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.

TIPOS ÁRBOLES

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

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.

RECORRIDO DE ÁRBOLES

RECORRIDO DE ANCHURA

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 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 – – 20, Tal como se muestra en la imagen

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 – 5 – 7 – 10 – 11 – 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.

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 – 5 – 11 – 15 – 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.

ÁRBOLES AVL Son ABB balanceados o equilibrados, y su denominación de AVL proviene de sus creadores rusos: Georgii Adelson – Velskii Yevgeniy Landis 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.

ÁRBOLES AVL Á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

Á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) Desequilibrio hacia la Izquierda (Equilibrio > +1) Desequilibrio hacia la Derecha (Equilibrio < -1)

Á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

Á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 = ASD(2)- ABI(3)

Á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.

Á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.

Á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) Desequilibrio hacia la Izquierda (Equilibrio > +1) Desequilibrio hacia la Derecha (Equilibrio < -1)

Á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.

Á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.

Á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