M.C. Meliza Contreras González

Slides:



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

ESTRUCTURA DE DATOS Unidad 04 TDA no lineales - Árboles.
ESTRUCTURA DE DATOS Unidad 04 Árboles BINARIOS.
ESTRUCTURA DE DATOS Unidad 04 Árboles BINARIOS DE BUSQUEDA.
Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.
Arbol de búsqueda binaria
ÁRBOLES EN C UNIVERSIDAD “ALONSO DE OJEDA” Facultad de Ingeniería
1 Extensión de un Estructura de Datos Agustín J. González ELO-320: Estructura de Datos y Algoritmos.
Programación y Estructuras de Datos
Igor Santos Grueiro. Muchos objetos tienen CLAVE.
ÁRBOLES BINARIOS DE BUSQUEDA
Estructura de Datos en memoria secundaria
Algoritmos Aleatorizados
Cont. Arbol Binario de Búsqueda
Árboles balanceados AVL
M.I.A Daniel Alejandro García López
Integrantes: Esteban Jiménez Guesseppe Lozada Mario Rodriguez Gustavo Tenorio Fabio.
Definiciones: conjuntos, grafos, y árboles
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.
Almacenamiento y Recuperacion de Información TAD_ABB Ana Lilia Laureano Cruces Universidad Autónoma Metroplotiana.
COLAS, IMPLEMENTACIÓN A PARTIR DE LISTAS Y PARA PILAS
Estructura de Datos Lineales
Árboles.
CENTRO DE GRAVEDAD Y PALANCAS CORPORALES
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
Ordenamiento, Heapsort y Colas de prioridad
ESTRUCTURAS DE DATOS I Conocer, comprender y analizar algunos de los principales tipos de estructuras de datos.
ARBOLES ESTRUCTURAS DE DATOS.
Estructura de Datos y Algoritmos
Árboles binarios de búsqueda
ARBOLES ESTRUCTURAS DE DATOS.
Á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
Árboles AVL por Jorge Riera Ledesma Departamento de Estadística, Investigación Operativa Y Computación.
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.
Árboles AVL cont..
Árboles Recomendado: 1. Nivelación Funciones
Árboles Binarios Estructuras de Datos.
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.
1 Ordenamiento y estadísticas de orden Agustín J. González ELO 320: Estructura de Datos y Algoritmos.
Estructura de Datos M.C. José Andrés Vázquez Flores FCC/BUAP
Definiciones: conjuntos, grafos, y árboles
Estructura de Datos M.C. J. Andrés V. F. FCC/BUAP
Algoritmos y estructura de datos en I.O.
ARBOLES GENERALIZADOS
CALCULAR EL ÁREA DE FIGURAS GEOMÉTRICAS COMPUESTAS
Árboles Binarios de Búsqueda (ABB)
Arboles Binarios.
A YUDANTÍA 5: A RBOLES Carlos Pulgar R. Mail: Página Ayudantía:
Estructura de Datos..
Árboles Equilibrados Estructuras de Datos MC Beatriz Beltrán Martínez Primavera 2015.

Matemáticas Discretas MISTI
M.C. Meliza Contreras González
Arboles Binarios: AVL (Adelson – Velskii - Landis)
Bases de datos II Universidad del Cauca Ing. Wilson Ortega.
Arboles AVL Nombre : Oscar Sandoval Fecha:
ÁRBOLES ESTRUCTURA DE DATOS II ING. CARLOS ALBERTO PULLAS.
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 -
Estructuras de Datos MC Beatriz Beltrán Martínez Primavera 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.
Transcripción de la presentación:

M.C. Meliza Contreras González Árboles AVL M.C. Meliza Contreras González

¿Qué es un árbol AVL? Es un árbol binario de búsqueda al que se le añade una condición de equilibrio. Esta condición es que para todo nodo la altura de sus subárboles izquierdo y derecho pueden diferir a lo sumo en una unidad. Propuesto en 1962 por Adelson-Velskii y Landis.

Ejemplos de árboles AVL no no

Factor de balanceo Los nodos de un árbol AVL guardan un valor entre 1 y -1, lo que se conoce como Factor de Balanceo(FB) y representa la diferencia entre las alturas de sus subárboles. 0 las alturas son iguales FB= 1 altura del derecho> izquierdo -1 altura del izquierdo> derecho

Factor de balanceo de árboles AVL - + - - +

Inserción de un nodo en un árbol AVL La inserción es idéntica que en un árbol binario de búsqueda. Una vez realizada la inserción si el árbol se desbalancea se realizan: Determinación del nodo pivote: nodo con FB distinto de 0 más cercano a los ancestros del nodo insertado Rotaciones simples Rotaciones dobles

Casos de balanceo después de la inserción El árbol AVL carece de nodo pivote: significa que en todos los ancestros del nuevo nodo tienen FB=0, al insertar el nodo, el árbol no se desbalancea, sólo se ajustan los valores de FB de todos los ancestros. - + Nuevo nodo Nuevo nodo

Casos de balanceo después de la inserción El árbol AVL tiene nodo pivote y el nuevo nodo se inserto en el subárbol más pequeño del pivote: en este caso se igualan las alturas de los dos subárboles y no ocurre desbalanceo, sólo se ajustan los valores de FB de todos los ancestros. + - + Nodo pivote + Nodo pivote Nuevo nodo

Casos de balanceo después de la inserción El árbol AVL tiene nodo pivote y el nuevo nodo se inserto en el subárbol más grande del pivote: en este caso se desbalancea el árbol a partir del pivote y hay que ocupar rotaciones.

Rotación simple izquierda Resto del árbol B 1 A 2 3 pivote Nuevo nodo + Resto del árbol A 3 B 1 2 Nuevo nodo Los triángulos pueden ser nulos

Rotación simple derecha Resto del árbol B 1 A 3 2 pivote - Resto del árbol A 3 B 2 1 Nuevo nodo Los triángulos pueden ser nulos Nuevo nodo

Rotación doble izquierda Resto del árbol B 1 A 2 4 pivote + C 3 Resto del árbol C B 1 4 0,- A 0,+ 2 3 Los triángulos pueden ser nulos. El nodo C puede ser el nodo a insertar Nuevo nodo Nuevo nodo

Rotación doble derecha Resto del árbol Resto del árbol - pivote B C 0,- 0,+ A A B 1 4 C 4 3 2 1 3 2 Los triángulos pueden ser nulos. El nodo C puede ser el nodo a insertar Nuevo nodo Nuevo nodo

Ejemplos Antes de insertar hay que checar que sea un árbol AVL Identificar los casos dependiendo si tiene pivote o no y en que subárbol se va a insertar. Si se desbalancea hay que revisar que rotaciones aplicar 12 7 21 4 9 16 25 2 8 13 19 - pivote 12 7 21 4 9 16 25 2 8 13 19 5 - Caso 2: tiene pivote (nodo 4) y se inserta en el subárbol más pequeño y se actualizan los factores de balanceo de los ancestros Insertar el nodo 5

Insertar el nodo 26 12 7 21 4 9 16 25 2 8 13 19 - pivote 12 7 21 4 9 16 25 2 8 13 19 + - 26 Caso 2: tiene pivote (nodo 21) y se inserta en el subárbol más pequeño, en este caso no hay subárboles cuyo nodo padre sea 25 y se actualizan los factores de balanceo de los ancestros

Insertar el nodo 23 12 7 21 4 9 16 25 2 8 13 19 + - 26 pivote 12 7 21 4 9 16 25 2 8 13 19 - 26 23 Caso 2: tiene pivote (nodo 25) y se inserta en el subárbol más pequeño y se actualizan los factores de balanceo de los ancestros

Insertar el nodo 27 12 7 21 4 9 16 25 2 8 13 19 - 26 23 12 7 21 4 9 16 25 2 8 13 19 + - 26 23 27 Caso 1: no tiene pivote y se inserta como hijo derecho del nodo padre que es 26, se actualizan los factores de balanceo de los ancestros

Insertar el nodo 28 (rotación simple izquierda) + 12 7 21 4 9 16 25 2 8 13 19 - 26 23 27 28 12 7 21 4 9 16 25 2 8 13 19 + - 26 23 27 pivote pivote Caso 3: tiene pivote (nodo 26) y se desbalancea el árbol a partir del mismo, por lo que se requiere una rotación (izquierda porque el pivote es +) . 1 12 7 21 4 9 16 25 2 8 13 19 + - 27 23 26 28 A B 3 1 12 7 21 4 9 16 25 2 8 13 19 + - 26 23 27 28 B A 3 El nodo 28 es el hijo derecho del nodo 27 dado que el triángulo 3 es nulo, es decir el nodo A en la rotación se vuelve el nodo padre de B y del nodo a insertar ver rotación simple izquierda En este caso los triángulos 1,2,3 son nulos.

Insertar el nodo 0 (rotación simple derecha) 12 7 21 4 9 16 25 2 8 13 19 - 12 7 21 4 9 16 25 2 8 13 19 - pivote pivote Caso 3: tiene pivote (nodo 4) y se desbalancea el árbol a partir del mismo, por lo que se requiere una rotación (derecha porque el pivote es -) . 1 12 7 21 4 9 16 25 2 8 13 19 - B A 3 1 12 7 21 2 9 16 25 4 8 13 19 - A B 3 El nodo 0 es el hijo izquierdo del nodo 2 dado que el triángulo 3 es nulo, es decir el nodo A en la rotación se vuelve el nodo padre de B y del nodo a insertar ver rotación simple derecha En este caso los triángulos 1,2,3 son nulos.

Insertar el nodo 8 (rotación doble derecha) pivote 50 30 70 15 40 55 80 10 42 52 60 - + 90 58 66 35 37 20 18 25 17 7 50 30 70 15 40 55 80 10 42 52 60 - + 90 58 66 35 37 20 18 25 17 7 8 pivote Caso 3: tiene pivote (nodo 10) y se desbalancea el árbol a partir del mismo, por lo que se requiere una rotación (derecha porque el pivote es -) .

Insertar el nodo 8 (segunda parte) (rotación doble derecha) - B 50 30 70 15 40 55 80 10 42 52 60 + 90 58 66 35 37 20 18 25 17 7 8 A 1 4 C 3 2 C 50 30 70 15 40 55 80 8 42 52 60 - + 90 58 66 35 37 20 18 25 17 7 10 A 1 4 B 3 2 En este caso los triángulos 1,2,3,4 son nulos, y el nodo C es el nodo a insertar. El nodo C en la rotación doble es el padre de A y B, ver rotación doble derecha

Insertar el nodo 36 (rotación doble izquierda) pivote 50 30 70 15 40 55 80 10 42 52 60 - + 90 58 66 35 37 20 18 25 17 7 50 30 70 15 40 55 80 10 42 52 60 - + 90 58 66 35 37 20 18 25 17 7 36 pivote Caso 3: tiene pivote (nodo 35) y se desbalancea el árbol a partir del mismo, por lo que se requiere una rotación (izquierda porque el pivote es +) .

Insertar el nodo 36 (segunda parte) (rotación doble izquierda) - 7 1 3 2 50 30 70 15 40 55 80 10 42 52 60 + 90 58 66 36 37 20 18 25 17 35 C A 4 B - 7 1 3 2 50 30 70 15 40 55 80 10 42 52 60 - + 90 58 66 35 37 20 18 25 17 36 B A 4 C En este caso los triángulos 1,2,3,4 son nulos, y el nodo C es el nodo a insertar. El nodo C en la rotación doble es el padre de A y B, ver rotación doble izquierda