Estructuras de Datos MC Beatriz Beltrán Martínez Primavera 2018

Slides:



Advertisements
Presentaciones similares
IBD Clase 7.
Advertisements

Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.
Árboles balanceados AVL
Integrantes: Esteban Jiménez Guesseppe Lozada Mario Rodriguez Gustavo Tenorio Fabio.
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.
Árboles.
Estructuras de Datos MC Beatriz Beltrán Martínez.
Definiciones: conjuntos, grafos, y árboles
Árboles, montículos y grafos Cola de prioridades, montículos
Tópicos I Árboles, montículos y grafos
Heaps Mauro Maldonado Abril/2005. Introducción La estructura heap es frecuentemente usada para implementar colas de prioridad. En este tipo de colas,
ARBOLES ESTRUCTURAS DE DATOS.
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.
Definición, propiedades, recorridos x a q yb w e vu fo.
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.

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.
Arboles M.C. José Andrés Vázquez FCC/BUAP
A YUDANTÍA 5: A RBOLES Carlos Pulgar R. Mail: Página Ayudantía:
Árboles Equilibrados Estructuras de Datos MC Beatriz Beltrán Martínez Primavera 2015.
M.C. Meliza Contreras González
Arboles Binarios: AVL (Adelson – Velskii - Landis)
Arreglos Bidimensionales Otoño FCC - BUAP Otoño 2015MC Beatriz Beltrán Martínez101  Hasta este momento se han visto arreglos unidimensionales.
Bases de datos II Universidad del Cauca Ing. Wilson Ortega.
Programación lógica funcional Árboles Binarios.  El siguiente trabajo trata sobre la estructura de datos no lineales llamada árbol. Esta estructura se.
Á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
Listas enlazadas particulares
Listas Dinámicas.
Programación I MC Beatriz Beltrán Martínez
Introducción a las estructuras de datos
Á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,
ÁRBOLES ESTRUCTURA DE DATOS II ING. CARLOS ALBERTO PULLAS.
Estructuras de Datos MC Beatriz Beltrán Martínez Primavera 2018
Tipos de Datos abstractos
Estructuras de Datos MC Beatriz Beltrán Martínez Primavera 2018
Estructuras de Datos MC Beatriz Beltrán Martínez Primavera 2018
Árboles (Trees) Árboles Árboles binarios Recorridos de árboles
Árboles Binarios de Búsqueda (ABB)
Actividad de Apertura Trace los grafos de todos los árboles no isomorfos con seis vértices.
Tipos de Datos abstractos
Estructura de Datos M.C. J. Andrés V. F. FCC/BUAP
Arboles M.C. José Andrés Vázquez FCC/BUAP
Estructuras de Datos Dinámicas
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
Metodología de la Programación
MC Beatriz Beltrán Martínez Verano 2018
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.
Árboles Binarios Estructuras de Datos.
Á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.
Departamento de Ingeniería de Sistemas e Industrial
Arreglos Bidimensionales
M.C. José Andrés Vázquez Flores
Transcripción de la presentación:

Estructuras de Datos MC Beatriz Beltrán Martínez Primavera 2018 Árboles Equilibrados Estructuras de Datos MC Beatriz Beltrán Martínez Primavera 2018

Árboles y equilibrio Objetivo: Conseguir que la altura del árbol sea mínima. Estrategias: Árboles binarios equilibrados: Ej: Árboles AVL Estructuras autoajustables: Después de cada operación se aplican reglas para reestructurar el árbol. Ej: Splay tree (árboles que se "separan"). FCC-BUAP Primavera 2018 MC Beatriz Beltrán Martínez

Árboles AVL Es un árbol binario de búsqueda equilibrado. AVL: Adelson-Velskii & Landis (1962). ABB + condiciones adicionales de equilibrio. La condición debería de ser fácil de mantener. Una primera aproximación: Exigir a los subárboles izquierdo y derecho la misma altura. Aplicar la condición a todos los nodos. FCC-BUAP Primavera 2018 MC Beatriz Beltrán Martínez

Árboles AVL Primera aproximación. Pero es una condición demasiado restrictiva: Difícil insertar elementos y mantener la condición. Otra aproximación menos "exigente": Árbol AVL: Árbol binario de búsqueda con la condición adicional de que para cualquier nodo del árbol, la diferencia izq/der es como máximo 1. Definimos la altura del subárbol vacío como –1. FCC-BUAP Primavera 2018 MC Beatriz Beltrán Martínez

Árboles AVL Inconveniente: Modificaciones (insertar/borrar). Pueden destruir el equilibrio de algunos nodos. Dificultad para mantener la condición de equilibrio. FCC-BUAP Primavera 2018 8 10 4 2 12 16 Arbol AVL 14 6 8 10 4 2 12 16 insertar(1) 14 6 1 8 10 4 2 12 16 insertar(13) 14 6 13 MC Beatriz Beltrán Martínez

Inserción Nodos a los que afecta la inserción: Nodos el camino entre la raíz y el punto de inserción. El resto no se ven afectados. Recorrer ese camino y garantizar el equilibrio. Se reequilibra el más profundo de los afectados. Esta operación reequilibra el árbol AVL. FCC-BUAP Primavera 2018 MC Beatriz Beltrán Martínez

Inserción 4 posibles situaciones que causan desequilibrio. Desequilibrio causado por inserción en: ...subárbol izquierdo del hijo izquierdo de A ...subárbol derecho del hijo izquierdo de A ...subárbol izquierdo del hijo derecho de A ...subárbol derecho del hijo derecho de A El equilibrio se restaura con una operación: Rotación. FCC-BUAP Primavera 2018 MC Beatriz Beltrán Martínez

Inserción Casos 1 y 4: Desequilibrio "por el exterior" 1.- A 2.- A 3.- A 4.- FCC-BUAP Primavera 2018 Casos 1 y 4: Desequilibrio "por el exterior" Rotación simple. Casos 2 y 3: Desequilibrio "por el interior" Rotación doble. MC Beatriz Beltrán Martínez

Rotación simple Se consiguen subárboles con la misma altura. ABB, AVL con diferencia de alturas = 0. El nuevo árbol tiene la altura del original. Se ha reequilibrado completamente el árbol. FCC-BUAP Primavera 2018 H NA NB H NA NB MC Beatriz Beltrán Martínez Razonar la situación inicial: Diferencias de 1 y 2 niveles en alturas de subárboles Ejercicio: Arbol AVL tras insertar: 3, 2, 1, 4, 5, 6, 7 Idem en un ABB

Rotación doble Rotación simple: No funciona en los casos 2 y 3. Q es demasiado profundo. Q al menos tiene una raíz. ...y dos subárboles, vacíos o con elementos. FCC-BUAP Primavera 2018 Rotación simple aplicada al "caso 2" NA NB Q NA NB Q MC Beatriz Beltrán Martínez

Rotación doble Se "eleva" el nodo Q como nueva raíz. El árbol vuelve a tener la altura original. Como antes de insertar. Se reequilibra el árbol por completo. FCC-BUAP Primavera 2018 NA NB Q NA NB Q NA NB Q MC Beatriz Beltrán Martínez

Rotación doble Rotación doble: Son dos rotaciones simples. Rotar Q y NB. Rotar Q y NA. FCC-BUAP Primavera 2018 NA NB Q NA NB Q NA NB Q MC Beatriz Beltrán Martínez

Algoritmo Los nodos tienen un Factor de Balance (FB) que está entre –1 y 1. FB = 0 alturas de subárboles iguales. FB =1 subárbol derecho más grande que izquierdo. FB = -1 subárbol izquierdo más grande que derecho Para realizar la inserción, se realiza igual que en un árbol binario y después se verifica el balanceo. FCC-BUAP Primavera 2018 MC Beatriz Beltrán Martínez

Algoritmo El mejor de los casos es que la inserción no realiza un desbalanceo, sólo hay que actualizar los FB de todos los ancestros. El otro caso es cuando hay que rebalancear, y se basa en un nodo pivote que es aquel que tiene un FB distinto de cero y es el más cercano de los ancestros del nodo recién insertado. FCC-BUAP Primavera 2018 MC Beatriz Beltrán Martínez

Algoritmo Inserte el nodo. Busque el nodo pivote. Coloque los apuntadores P1, P2, P3 y P4 donde: P1 = apuntador al nodo padre del nodo pivote. P2 = apuntador al nodo pivote. P3 = apuntador al nodo hijo del nodo pivote, que es la raíz del subárbol más grande. P4 = apuntador al nodo hijo del nodo apuntado por P3, que sigue en la ruta de búsqueda del nuevo nodo. Si no existe el nodo pivote, entonces modificar FB de todos los ancestros. FCC-BUAP Primavera 2018 MC Beatriz Beltrán Martínez

Algoritmo Si el nuevo nodo se insertó en el subárbol más pequeño, modificar los FB desde el pivote hasta el nuevo. Si no, verificar el tipo de rotación. Si es rotación simple: Modificar apuntadores y FB (rutina rotación simple) Si no, modificar apuntadores y FB (rutina rotación doble) Fin FCC-BUAP Primavera 2018 MC Beatriz Beltrán Martínez

Algoritmo Rotación Simple. Si P1 no apunta a vacío Si la información del nuevo nodo es menor que la información apuntada por P1. Hijo izquierdo de P1 = P3 Si no Hijo derecho de P1 = P3 P3 es la nueva raíz del árbol. FCC-BUAP Primavera 2018 MC Beatriz Beltrán Martínez

Algoritmo Si la información del nuevo nodo es menor que la información apuntada por P2 Hijo izquierdo de P2 = hijo derecho de P3 Hijo derecho de P3 = P2 Modificar el FB desde el hijo izquierdo de P3 hasta el padre del nuevo nodo Si no Hijo derecho de P2 = hijo izquierdo de P3 Hijo izquierdo de P3 = P2 Modificar el FB desde el hijo derecho de P3 hasta el padre del nuevo nodo El FB del nodo señalado por P2 = 0 FCC-BUAP Primavera 2018 MC Beatriz Beltrán Martínez

Algoritmo Rotación doble Si P1 no apunta a vacío Si la información del nuevo nodo es menor que la información apuntada por P1. Hijo izquierdo de P1 = P4 Si no Hijo derecho de P1 = P4 P4 es la nueva raíz del árbol. FCC-BUAP Primavera 2018 MC Beatriz Beltrán Martínez

Algoritmo Si la información del nuevo nodo es menor que la información apuntada por P2 Hijo derecho de P3 = hijo izquierdo de P4 Hijo izquierdo de P2 = hijo derecho de P4 Hijo izquierdo de P4 = P3 Hijo derecho de P4 = P2. Seguir en 3. Si no Hijo izquierdo de P3 = hijo derecho de P4 Hijo derecho de P2 = hijo izquierdo de P4 Hijo derecho de P4 = P3 Hijo izquierdo de P4 = P2. Seguir en 4. FCC-BUAP Primavera 2018 MC Beatriz Beltrán Martínez

Algoritmo FCC-BUAP Primavera 2018 Si la información del nuevo nodo es menor que la información de P4: Modificar FB desde el hijo derecho de P3 hasta le padre del nuevo nodo. Modificar FB del nodo señalado por P2 (vale +1) Si no Si la información del nuevo nodo es mayor a la información de P4: Modificar FB desde el hijo izquierdo de P2 hasta el padre del nuevo nodo. Modificar FB del nodo señalado por P3 (vale -1) Modificar FB del nodo señalado por P2 (vale 0). MC Beatriz Beltrán Martínez

Algoritmo Si la información del nuevo nodo es mayor que la información de P4: Modificar FB desde el hijo izquierdo de P3 hasta le padre del nuevo nodo. Modificar FB del nodo señalado por P2 (vale -1) Si no Si la información del nuevo nodo es menor que la información de P4: Modificar FB desde el hijo derecho de P2 hasta el padre del nuevo nodo. Modificar FB del nodo señalado por P3 (vale +1) Modificar FB del nodo señalado por P2 (vale 0) FCC-BUAP Primavera 2018 MC Beatriz Beltrán Martínez

Inconvenientes Inserción de un elemento en árbol AVL Se inserta en un subárbol Si no cambia la altura: OK Si aparece algún desequilibrio: Solucionar con rotaciones Problema: Cálculo de alturas. ¿Recalcular cuando se necesitan? ¿Almacenar en los nodos y mantener actualizada? FCC-BUAP Primavera 2018 MC Beatriz Beltrán Martínez

Otros árboles equilibrados Otros esquemas de árboles equilibrados: Splay Trees Red-Black Trees AA-Trees B-Trees Árboles-B (Bayer, 1970) Interesantes para manejo de datos en disco. Problema común: Reorganización del árbol tras insertar/eliminar FCC-BUAP Primavera 2018 MC Beatriz Beltrán Martínez

Estructuras de Datos MC Beatriz Beltrán Martínez Primavera 2018 Árboles B Estructuras de Datos MC Beatriz Beltrán Martínez Primavera 2018

Árboles-B Optimizados para manejo de datos en disco Objetivo: Minimizar el número de accesos a disco Árbol-B de orden N: Árbol N-ario Es un árbol equilibrado Con N claves en cada nodo Coste de acceso (profundidad): logN N FCC-BUAP Primavera 2018 MC Beatriz Beltrán Martínez

Propiedades Aunque hay muchas variantes: Cada página contiene a lo sumo 2N elementos (llaves). Cada página, excepto la de la raíz, contiene N elementos por lo menos. Cada página es una página de hoja, o sea que no tiene descendientes o tiene M+1 descendientes, donde M es el número de llaves en esa página. Todas las páginas de hoja aparecen al mismo nivel. FCC-BUAP Primavera 2018 MC Beatriz Beltrán Martínez * En las primeras L inserciones eso no se puede cumplir

Árboles-B Inserción: Añadir el dato a su hoja. Reorganizar la hoja. Si se llena la hoja: Dos hojas con éL/2ù elementos. Actualizar el padre Si se llena el padre: Partir en dos; actualizar nodo superior Puede exigir una propagación hasta la raíz. Borrado Fusión de hojas si no alcanza el mínimo de elementos. El padre pierde hijos. Eliminación de nodos... FCC-BUAP Primavera 2018 MC Beatriz Beltrán Martínez

Ejemplo Árbol de orden 2 con 3 niveles. 25 26 27 28 10 20 30 40 FCC-BUAP Primavera 2018 25 26 27 28 10 20 30 40 13 14 15 18 22 24 32 35 38 41 42 45 46 2 5 7 8 MC Beatriz Beltrán Martínez

Inserción La inserción en un árbol B es relativamente sencilla. Si hay que insertar un elemento en una página con M<2N elementos, el proceso de inserción queda limitado a esa página. En una página llena, se debe realizar la asignación de páginas nuevas. En casos extremos, la propagación se lleva a la raíz, por lo tanto es cuando el árbol B puede crecer. FCC-BUAP Primavera 2018 MC Beatriz Beltrán Martínez

Inserción Insertar llave 22 Insertar llave 51 20 7 10 15 18 FCC-BUAP Primavera 2018 20 7 10 15 18 26 30 35 40 20 30 35 40 7 10 15 18 22 26 Insertar llave 22 MC Beatriz Beltrán Martínez 20 30 35 40 51 7 10 15 18 22 26 Insertar llave 51

Inserción Los árboles B: Crecen de las hojas hacia la raíz. Son recursivos. La búsqueda de elementos se realiza como en árboles binario, solo hay que modificar la búsqueda sobre un arreglo. Son balanceados. Cada página tiene entre N y 2N elementos. FCC-BUAP Primavera 2018 MC Beatriz Beltrán Martínez

Eliminación La eliminación de elementos en un árbol B es en teoría sencilla, pero se complica en sus detalles. Se pueden distinguir dos circunstancias: El elemento que debe suprimirse se halla en una página de hoja, entonces el algoritmos de eliminación es sencillo. El elemento no se encuentra en una página de hoja; hay que sustituirlo por uno de los dos elementos lexicográficamente contiguos, que resultan estar en las páginas de hojas. FCC-BUAP Primavera 2018 MC Beatriz Beltrán Martínez

Eliminación Eliminar la llave 25 25 26 27 10 20 30 40 13 15 18 26 27 10 20 30 40 13 15 18 21 22 24 32 35 38 42 45 46 5 7 8 FCC-BUAP Primavera 2018 Eliminar la llave 25 24 26 27 10 20 30 40 13 15 18 21 22 32 35 38 42 45 46 5 7 8 MC Beatriz Beltrán Martínez

Eliminación Eliminar la llave 45 Eliminar la llave 24 24 26 27 10 20 FCC-BUAP Primavera 2018 24 26 27 10 20 30 40 13 15 18 21 22 32 35 38 42 46 5 7 8 MC Beatriz Beltrán Martínez Eliminar la llave 24 10 20 30 40 21 22 26 27 13 15 18 32 35 38 42 46 5 7 8

Eliminación Eliminar las llaves 21, 8 y 46 Eliminar las llaves 32 y 38 FCC-BUAP Primavera 2018 10 20 30 21 22 26 27 13 15 18 35 40 42 46 5 7 8 Eliminar las llaves 21, 8 y 46 MC Beatriz Beltrán Martínez 10 20 30 22 26 27 13 15 18 35 40 42 5 7