SlideShare une entreprise Scribd logo
1  sur  31
Arboles
Árboles  El árbol es una estructura muy usada en todos los ámbitos de la informática ya que se adapta a la representación natural de informaciones homogéneas organizadas y de una gran comodidad y rapidez de manipulación. Las estructuras tipo árbol se usan para representar datos con una relación jerárquica entre sus elementos, como son árboles genealógicos, tablas, etc.
Árboles  Un árbol se define como un conjunto finito de uno o más nodos relacionados de la siguiente forma: • Hay un nodo especial llamado raíz del árbol, que proporciona un punto de entrada a la estructura. • Los nodos restantes se subdividen en conjuntos disjuntos, cada uno de los cuales es a su vez un árbol. (Recursividad) Estos árboles se llaman subárbolesdel raíz.
Árboles  La representación y terminología de los árboles se realiza con las típicas notaciones de las relaciones familiares en los árboles genealógicos: padre, hijo, hermano, ascendiente, descendiente.   Junto a estos conceptos se definen otros tales como raíz, nodo, hoja, camino, nivel, profundidad, etc.
Longitud de caminos interno y externo
Se define como la longitud de camino del nodo X como el numero de arcos q se deben recorrer para llegar desde la raíz hasta el nodo X. La raíz tiene longitud de camino 1, sus descendientes directos longitud de camino 2 y así sucesivamente.
Su formula es: 			LCI = i: representa el nivel del árbol. h: altura del árbol.    : el numero de nodos en el nivel i.
La media de la longitud del camino interno (LCIM) se calcula dividiendo la LCI entre el numero de nodos del árbol (n). La media es importante porque permite conocer, en promedio, el numero de decisiones que se deben tomar para llegar a un determinado nodo partiendo desde la raíz. LCIM = LCI/n
Longitud de camino externo Un árbol extendido es aquel en el que el numero de hijos de cada nodo  es igual al grado del árbol. Si alguno de los nodos del árbol no cumple con esta condición, entonces deben incorporarse al mismo tantos nodos especiales como se requiera para llegar a cumplirla.
Los nodos especiales tienen como objetivo remplazar las ramas vacías o nulas, no pueden tener descendientes y normalmente se representan con la forma de un cuadrado. La longitud de camino externo (LCE) de un árbol como la suma de las longitudes del camino de todos los nodos especiales del árbol.
Su formula es: LCE = i: representa el nivel del árbol. h: altura del árbol.    : el numero de nodos especiales en el nivel i.
La media de la longitud de camino externo (LCEM) se calcula dividiendo LCE entre el numero de nodos especiales (ne). LCEM = LCE/ne
Arboles AVL
Árbol AVL: Es un tipo especial de árbol binario ideado por los matemáticos rusos Adelson-Velskii y Landis. Fue el primer árbol de búsqueda binario auto-balanceable que se ideó. (AVL) Adelson-Velskii y Landis
Características: *Están siempre equilibrados de tal modo que para todos los nodos, la altura de la rama izquierda no difiere en más de una unidad de la altura de la rama derecha o viceversa *La complejidad de una búsqueda en uno de estos árboles se mantiene siempre en orden de complejidad O(log n) *La inserción y el borrado de los nodos se ha de realizar de una forma especial. Si al realizar una operación de inserción o borrado se rompe la condición de equilibrio, hay que realizar una serie de rotaciones de los nodos.
Factor de equilibrio Elfactor de equilibrio es la diferencia entre las alturas del árbol derecho y el izquierdo: FE = altura subárbol derecho - altura subárbol izquierdo; Por definición, para un árbol AVL, este valor debe ser -1, 0 ó 1. Si el factor de equilibrio de un nodo es: 0 -> el nodo está equilibrado y sus subárboles tienen exactamente la misma altura. 1 -> el nodo está desequilibrado y su subárbol derecho es un nivel más alto. -1 -> el nodo está desequilibrado y su subárbol izquierdo es un nivel más alto.  Si el factor de equilibrio Fe≥2 o Fe≤-2 es necesario reequilibrar.
Inserción La inserción en un árbol de AVL puede ser realizada insertando el valor dado en el árbol como si fuera un árbol de búsqueda binario desequilibrado y después retrocediendo hacia la raíz, rotando sobre cualquier nodo que pueda haberse desequilibrado durante la inserción. Proceso de inserción: 1.buscar hasta encontrar la posición de inserción o modificación (proceso idéntico a inserción en árbol binario de búsqueda) 2.insertar el nuevo nodo con factor de equilibrio “equilibrado” 3.desandar el camino de búsqueda, verificando el equilibrio de los nodos, y re-equilibrando si es necesario
Rotaciones Para conseguir esta propiedad de equilibrio, la inserción y el borrado de los nodos se ha de realizar de una forma especial. Si al realizar una operación de inserción o borrado se rompe la condición de equilibrio, hay que realizar una serie de rotaciones de los nodos. El reequilibrado se produce de abajo hacia arriba sobre los nodos en los que se produce el desequilibrio. Pueden darse dos casos: rotación simple o rotación doble; a su vez ambos casos pueden ser hacia la derecha o hacia la izquierda.
Rotación simple a la derecha De un árbol de raíz (r) y de hijos izquierdo (i) y derecho (d), lo que haremos será formar un nuevo árbol cuya raíz sea la raíz del hijo izquierdo, como hijo izquierdo colocamos el hijo izquierdo de i (nuestro i’) y como hijo derecho construimos un nuevo árbol que tendrá como raíz, la raíz del árbol (r), el hijo derecho de i (d’) será el hijo izquierdo y el hijo derecho será el hijo derecho del árbol (d).
Rotación simple a la izquierda De un árbol de raíz (r) y de hijos izquierdo (i) y derecho (d), consiste en formar un nuevo árbol cuya raíz sea la raíz del hijo derecho, como hijo derecho colocamos el hijo derecho de d (nuestro d’) y como hijo izquierdo construimos un nuevo árbol que tendrá como raíz la raíz del árbol (r), el hijo izquierdo de d será el hijo derecho (i’) y el hijo izquierdo será el hijo izquierdo del árbol (i). Precondición : Tiene que tener hijo derecho no vacío.
Rotación doble a la derecha Si la inserción se produce en el hijo derecho del hijo izquierdo del nodo desequilibrado (o viceversa) hay que realizar una doble rotación
Rotación doble a la izquierda
Comportamiento de un algoritmo El numero de veces que el procedimiento inserta se llama a si mismo recursivamente para insertar un nuevo nodo puede tener la misma extensión que la altura del árbol. A primera vista puede parecer que cada llamada podría provocar una rotación del subárbol correspondiente, aunque de hecho a lo máximo se hará una sola rotación. Esto porque las rotaciones solo se realizan cuando llamamos los procedimientos de balance y que estos procedimientos se les llama solo cuando la altura de un árbol ha aumentado. Cuando  dichos procedimientos retornan, las rotaciones ya han eliminado el incremento de altura, por lo cual en las restantes llamadas recursivas la altura no ha aumentado y tampoco se hacen mas rotaciones.
Eliminación de un nodo en un arbolavl La operación de eliminación consiste en eliminar un nodo con cierta clave de un árbol de búsqueda equilibrado.  El algoritmo de eliminación puede descomponerse en dos partes diferenciadas.  1- Estrategia de la eliminación en árboles de búsqueda 2- Actualización del factor de equilibrio
ejemplo:
ALGORITMO PARA ELIMINAR UN NODO DE UN ARBOL EQUILIBRADO En el algoritmo para eliminar un nodo que contiene una cierta clave de un árbol de búsqueda lo primero que se hace es buscar, para lo que se sigue el camino de búsqueda. A continuación se procede a eliminar el nodo, se distinguen los siguientes casos. El nodo a borrar es un nodo hoja, o con un único descendiente. El nodo a eliminar tiene dos subárboles Una vez eliminado el nodo, el algoritmo tiene que prever actualizar los factores de equilibrio de los nodos que han formado el camino de búsqueda ya que la altura de alguna de las dos ramas ha decrecido.
Altura de un árbol AVL No resulta fácil determinar la altura promedio de un árbol AVL, por lo que se determina la altura en el peor de los casos, es decir, la altura máxima que puede tener un árbol equilibrado con un número de nodos n. La altura es un parámetro importante ya que coincide con el número de iteraciones que se realizan para bajar desde el nodo raíz al nivel más profundo de las hojas.  La construcción de árboles binarios equilibrados siguiendo esta estrategia puede representarse matemáticamente: La expresión matemática expuesta tiene una gran similitud con la ley de recurrencia que permite encontrar números de Fibonacci, an = an _ 1 + an _ 2• Por esa razón a los árboles equilibrados construidos con esta ley de formación se les conoce como árboles de Fibonacci.
Árbol de Fibonacci El estudio matemático de la función generadora de los números de Fibonacci permite encontrar esta relación: Tomando logaritmos se encuentra la altura h en función del número de nodos, N h : La altura de un árbol binario perfectamente equilibrado de n nodos en log n. las operaciones que se aplican a los arboles AVL no requieren más de 44% de tiempo (en el caso más desfavorable) que si se aplican a un árbol perfectamente equilibrado.

Contenu connexe

Tendances

Programación 3: árboles de búsqueda equilibrados
Programación 3: árboles de búsqueda equilibradosProgramación 3: árboles de búsqueda equilibrados
Programación 3: árboles de búsqueda equilibradosAngel Vázquez Patiño
 
Arboles mate discreta
Arboles mate discretaArboles mate discreta
Arboles mate discretaJunior Soto
 
2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automata2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automataJacqui Venegas
 
E.d. lineales y no lineales
E.d. lineales y no linealesE.d. lineales y no lineales
E.d. lineales y no linealesGaby Toriz
 
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)Rubi Veronica Chimal Cuxin
 
Diapositiva de prueba
Diapositiva de pruebaDiapositiva de prueba
Diapositiva de pruebaJPi2013
 
Aplicación de arreglos bidimensionales
Aplicación de arreglos bidimensionalesAplicación de arreglos bidimensionales
Aplicación de arreglos bidimensionalesmarigelcontreras
 
Mapa Conceptual de Grafos
Mapa Conceptual de GrafosMapa Conceptual de Grafos
Mapa Conceptual de GrafosSandra Biondi
 
Arboles En Estructura de Datos
Arboles En Estructura de DatosArboles En Estructura de Datos
Arboles En Estructura de DatosDARKGIRL93
 
Presentacion de circuitos y relacion a la ingenieria de sistemas
Presentacion de circuitos y relacion a la ingenieria de sistemasPresentacion de circuitos y relacion a la ingenieria de sistemas
Presentacion de circuitos y relacion a la ingenieria de sistemasJulio Martinez Valerio
 
Arrays. drey aguilera 1
Arrays. drey aguilera 1Arrays. drey aguilera 1
Arrays. drey aguilera 1Drey aguilera
 

Tendances (20)

Programación 3: árboles de búsqueda equilibrados
Programación 3: árboles de búsqueda equilibradosProgramación 3: árboles de búsqueda equilibrados
Programación 3: árboles de búsqueda equilibrados
 
Arboles mate discreta
Arboles mate discretaArboles mate discreta
Arboles mate discreta
 
Árboles binarios, ABB y AVL
Árboles binarios, ABB y AVLÁrboles binarios, ABB y AVL
Árboles binarios, ABB y AVL
 
Unidad 6
Unidad 6Unidad 6
Unidad 6
 
2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automata2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automata
 
Árboles Multicamino, B y B+
Árboles Multicamino, B y B+Árboles Multicamino, B y B+
Árboles Multicamino, B y B+
 
Arboles Binarios
Arboles BinariosArboles Binarios
Arboles Binarios
 
E.d. lineales y no lineales
E.d. lineales y no linealesE.d. lineales y no lineales
E.d. lineales y no lineales
 
Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4
 
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
 
Diapositiva de prueba
Diapositiva de pruebaDiapositiva de prueba
Diapositiva de prueba
 
Arboles binarios
Arboles binariosArboles binarios
Arboles binarios
 
Aplicación de arreglos bidimensionales
Aplicación de arreglos bidimensionalesAplicación de arreglos bidimensionales
Aplicación de arreglos bidimensionales
 
Arboles
ArbolesArboles
Arboles
 
Mapa Conceptual de Grafos
Mapa Conceptual de GrafosMapa Conceptual de Grafos
Mapa Conceptual de Grafos
 
Lenguajes
LenguajesLenguajes
Lenguajes
 
Arboles En Estructura de Datos
Arboles En Estructura de DatosArboles En Estructura de Datos
Arboles En Estructura de Datos
 
Presentacion de circuitos y relacion a la ingenieria de sistemas
Presentacion de circuitos y relacion a la ingenieria de sistemasPresentacion de circuitos y relacion a la ingenieria de sistemas
Presentacion de circuitos y relacion a la ingenieria de sistemas
 
Arrays. drey aguilera 1
Arrays. drey aguilera 1Arrays. drey aguilera 1
Arrays. drey aguilera 1
 
ARBOLES
ARBOLESARBOLES
ARBOLES
 

En vedette (10)

Unidad v arboles ESTRUCTURA DE DATOS
Unidad v arboles ESTRUCTURA DE DATOSUnidad v arboles ESTRUCTURA DE DATOS
Unidad v arboles ESTRUCTURA DE DATOS
 
Aplicaciones de los árboles y grafos
Aplicaciones de los árboles y grafosAplicaciones de los árboles y grafos
Aplicaciones de los árboles y grafos
 
Grafos
GrafosGrafos
Grafos
 
Árboles Binarios y Grafos
Árboles Binarios  y GrafosÁrboles Binarios  y Grafos
Árboles Binarios y Grafos
 
Arboles
ArbolesArboles
Arboles
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
Arboles
ArbolesArboles
Arboles
 
Arboles y grafos
Arboles y grafosArboles y grafos
Arboles y grafos
 
Dosificacion o diseño de mezclas del concreto
Dosificacion o diseño de mezclas del concretoDosificacion o diseño de mezclas del concreto
Dosificacion o diseño de mezclas del concreto
 
La madera
La maderaLa madera
La madera
 

Similaire à Arboles

Similaire à Arboles (20)

Arboles de busqueda
Arboles de busquedaArboles de busqueda
Arboles de busqueda
 
Estructura de dato unidad 4
Estructura de dato unidad 4Estructura de dato unidad 4
Estructura de dato unidad 4
 
áRbol avl
áRbol avláRbol avl
áRbol avl
 
Arboles
ArbolesArboles
Arboles
 
Estructura de datos unidad 4 y 5
Estructura de datos unidad 4 y 5Estructura de datos unidad 4 y 5
Estructura de datos unidad 4 y 5
 
Equilibrado
EquilibradoEquilibrado
Equilibrado
 
Equilibrado
EquilibradoEquilibrado
Equilibrado
 
Arboles binarios
Arboles binariosArboles binarios
Arboles binarios
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no lineales
 
Arboles TDAS
Arboles TDASArboles TDAS
Arboles TDAS
 
Para leer estructuras
Para leer estructurasPara leer estructuras
Para leer estructuras
 
Para leer estructuras
Para leer estructurasPara leer estructuras
Para leer estructuras
 
Arboles
ArbolesArboles
Arboles
 
Programación 3: árboles binarios y ordenados
Programación 3: árboles binarios y ordenadosProgramación 3: árboles binarios y ordenados
Programación 3: árboles binarios y ordenados
 
Árboles binarios
Árboles binariosÁrboles binarios
Árboles binarios
 
Árboles Binarios
Árboles BinariosÁrboles Binarios
Árboles Binarios
 
Declarar Arboles. Operaciones. Ejemplospdf
Declarar Arboles. Operaciones. EjemplospdfDeclarar Arboles. Operaciones. Ejemplospdf
Declarar Arboles. Operaciones. Ejemplospdf
 
Avl trees
Avl treesAvl trees
Avl trees
 
Arboles
ArbolesArboles
Arboles
 
Arboles presentacion
Arboles presentacionArboles presentacion
Arboles presentacion
 

Plus de favi_hola

Procesamiento coordinado
Procesamiento coordinadoProcesamiento coordinado
Procesamiento coordinadofavi_hola
 
Dipersion hash
Dipersion hashDipersion hash
Dipersion hashfavi_hola
 
Indizacion y operaciones
Indizacion y operacionesIndizacion y operaciones
Indizacion y operacionesfavi_hola
 
Dispositivos de almacenamiento secundario
Dispositivos de almacenamiento secundarioDispositivos de almacenamiento secundario
Dispositivos de almacenamiento secundariofavi_hola
 
Indexamiento
IndexamientoIndexamiento
Indexamientofavi_hola
 

Plus de favi_hola (6)

Procesamiento coordinado
Procesamiento coordinadoProcesamiento coordinado
Procesamiento coordinado
 
Dipersion hash
Dipersion hashDipersion hash
Dipersion hash
 
Indizacion y operaciones
Indizacion y operacionesIndizacion y operaciones
Indizacion y operaciones
 
Registros
RegistrosRegistros
Registros
 
Dispositivos de almacenamiento secundario
Dispositivos de almacenamiento secundarioDispositivos de almacenamiento secundario
Dispositivos de almacenamiento secundario
 
Indexamiento
IndexamientoIndexamiento
Indexamiento
 

Arboles

  • 2. Árboles El árbol es una estructura muy usada en todos los ámbitos de la informática ya que se adapta a la representación natural de informaciones homogéneas organizadas y de una gran comodidad y rapidez de manipulación. Las estructuras tipo árbol se usan para representar datos con una relación jerárquica entre sus elementos, como son árboles genealógicos, tablas, etc.
  • 3. Árboles Un árbol se define como un conjunto finito de uno o más nodos relacionados de la siguiente forma: • Hay un nodo especial llamado raíz del árbol, que proporciona un punto de entrada a la estructura. • Los nodos restantes se subdividen en conjuntos disjuntos, cada uno de los cuales es a su vez un árbol. (Recursividad) Estos árboles se llaman subárbolesdel raíz.
  • 4. Árboles La representación y terminología de los árboles se realiza con las típicas notaciones de las relaciones familiares en los árboles genealógicos: padre, hijo, hermano, ascendiente, descendiente.   Junto a estos conceptos se definen otros tales como raíz, nodo, hoja, camino, nivel, profundidad, etc.
  • 5.
  • 6. Longitud de caminos interno y externo
  • 7. Se define como la longitud de camino del nodo X como el numero de arcos q se deben recorrer para llegar desde la raíz hasta el nodo X. La raíz tiene longitud de camino 1, sus descendientes directos longitud de camino 2 y así sucesivamente.
  • 8. Su formula es: LCI = i: representa el nivel del árbol. h: altura del árbol. : el numero de nodos en el nivel i.
  • 9. La media de la longitud del camino interno (LCIM) se calcula dividiendo la LCI entre el numero de nodos del árbol (n). La media es importante porque permite conocer, en promedio, el numero de decisiones que se deben tomar para llegar a un determinado nodo partiendo desde la raíz. LCIM = LCI/n
  • 10. Longitud de camino externo Un árbol extendido es aquel en el que el numero de hijos de cada nodo es igual al grado del árbol. Si alguno de los nodos del árbol no cumple con esta condición, entonces deben incorporarse al mismo tantos nodos especiales como se requiera para llegar a cumplirla.
  • 11. Los nodos especiales tienen como objetivo remplazar las ramas vacías o nulas, no pueden tener descendientes y normalmente se representan con la forma de un cuadrado. La longitud de camino externo (LCE) de un árbol como la suma de las longitudes del camino de todos los nodos especiales del árbol.
  • 12. Su formula es: LCE = i: representa el nivel del árbol. h: altura del árbol. : el numero de nodos especiales en el nivel i.
  • 13. La media de la longitud de camino externo (LCEM) se calcula dividiendo LCE entre el numero de nodos especiales (ne). LCEM = LCE/ne
  • 15. Árbol AVL: Es un tipo especial de árbol binario ideado por los matemáticos rusos Adelson-Velskii y Landis. Fue el primer árbol de búsqueda binario auto-balanceable que se ideó. (AVL) Adelson-Velskii y Landis
  • 16. Características: *Están siempre equilibrados de tal modo que para todos los nodos, la altura de la rama izquierda no difiere en más de una unidad de la altura de la rama derecha o viceversa *La complejidad de una búsqueda en uno de estos árboles se mantiene siempre en orden de complejidad O(log n) *La inserción y el borrado de los nodos se ha de realizar de una forma especial. Si al realizar una operación de inserción o borrado se rompe la condición de equilibrio, hay que realizar una serie de rotaciones de los nodos.
  • 17. Factor de equilibrio Elfactor de equilibrio es la diferencia entre las alturas del árbol derecho y el izquierdo: FE = altura subárbol derecho - altura subárbol izquierdo; Por definición, para un árbol AVL, este valor debe ser -1, 0 ó 1. Si el factor de equilibrio de un nodo es: 0 -> el nodo está equilibrado y sus subárboles tienen exactamente la misma altura. 1 -> el nodo está desequilibrado y su subárbol derecho es un nivel más alto. -1 -> el nodo está desequilibrado y su subárbol izquierdo es un nivel más alto. Si el factor de equilibrio Fe≥2 o Fe≤-2 es necesario reequilibrar.
  • 18. Inserción La inserción en un árbol de AVL puede ser realizada insertando el valor dado en el árbol como si fuera un árbol de búsqueda binario desequilibrado y después retrocediendo hacia la raíz, rotando sobre cualquier nodo que pueda haberse desequilibrado durante la inserción. Proceso de inserción: 1.buscar hasta encontrar la posición de inserción o modificación (proceso idéntico a inserción en árbol binario de búsqueda) 2.insertar el nuevo nodo con factor de equilibrio “equilibrado” 3.desandar el camino de búsqueda, verificando el equilibrio de los nodos, y re-equilibrando si es necesario
  • 19. Rotaciones Para conseguir esta propiedad de equilibrio, la inserción y el borrado de los nodos se ha de realizar de una forma especial. Si al realizar una operación de inserción o borrado se rompe la condición de equilibrio, hay que realizar una serie de rotaciones de los nodos. El reequilibrado se produce de abajo hacia arriba sobre los nodos en los que se produce el desequilibrio. Pueden darse dos casos: rotación simple o rotación doble; a su vez ambos casos pueden ser hacia la derecha o hacia la izquierda.
  • 20. Rotación simple a la derecha De un árbol de raíz (r) y de hijos izquierdo (i) y derecho (d), lo que haremos será formar un nuevo árbol cuya raíz sea la raíz del hijo izquierdo, como hijo izquierdo colocamos el hijo izquierdo de i (nuestro i’) y como hijo derecho construimos un nuevo árbol que tendrá como raíz, la raíz del árbol (r), el hijo derecho de i (d’) será el hijo izquierdo y el hijo derecho será el hijo derecho del árbol (d).
  • 21.
  • 22. Rotación simple a la izquierda De un árbol de raíz (r) y de hijos izquierdo (i) y derecho (d), consiste en formar un nuevo árbol cuya raíz sea la raíz del hijo derecho, como hijo derecho colocamos el hijo derecho de d (nuestro d’) y como hijo izquierdo construimos un nuevo árbol que tendrá como raíz la raíz del árbol (r), el hijo izquierdo de d será el hijo derecho (i’) y el hijo izquierdo será el hijo izquierdo del árbol (i). Precondición : Tiene que tener hijo derecho no vacío.
  • 23.
  • 24. Rotación doble a la derecha Si la inserción se produce en el hijo derecho del hijo izquierdo del nodo desequilibrado (o viceversa) hay que realizar una doble rotación
  • 25. Rotación doble a la izquierda
  • 26. Comportamiento de un algoritmo El numero de veces que el procedimiento inserta se llama a si mismo recursivamente para insertar un nuevo nodo puede tener la misma extensión que la altura del árbol. A primera vista puede parecer que cada llamada podría provocar una rotación del subárbol correspondiente, aunque de hecho a lo máximo se hará una sola rotación. Esto porque las rotaciones solo se realizan cuando llamamos los procedimientos de balance y que estos procedimientos se les llama solo cuando la altura de un árbol ha aumentado. Cuando dichos procedimientos retornan, las rotaciones ya han eliminado el incremento de altura, por lo cual en las restantes llamadas recursivas la altura no ha aumentado y tampoco se hacen mas rotaciones.
  • 27. Eliminación de un nodo en un arbolavl La operación de eliminación consiste en eliminar un nodo con cierta clave de un árbol de búsqueda equilibrado. El algoritmo de eliminación puede descomponerse en dos partes diferenciadas. 1- Estrategia de la eliminación en árboles de búsqueda 2- Actualización del factor de equilibrio
  • 29. ALGORITMO PARA ELIMINAR UN NODO DE UN ARBOL EQUILIBRADO En el algoritmo para eliminar un nodo que contiene una cierta clave de un árbol de búsqueda lo primero que se hace es buscar, para lo que se sigue el camino de búsqueda. A continuación se procede a eliminar el nodo, se distinguen los siguientes casos. El nodo a borrar es un nodo hoja, o con un único descendiente. El nodo a eliminar tiene dos subárboles Una vez eliminado el nodo, el algoritmo tiene que prever actualizar los factores de equilibrio de los nodos que han formado el camino de búsqueda ya que la altura de alguna de las dos ramas ha decrecido.
  • 30. Altura de un árbol AVL No resulta fácil determinar la altura promedio de un árbol AVL, por lo que se determina la altura en el peor de los casos, es decir, la altura máxima que puede tener un árbol equilibrado con un número de nodos n. La altura es un parámetro importante ya que coincide con el número de iteraciones que se realizan para bajar desde el nodo raíz al nivel más profundo de las hojas. La construcción de árboles binarios equilibrados siguiendo esta estrategia puede representarse matemáticamente: La expresión matemática expuesta tiene una gran similitud con la ley de recurrencia que permite encontrar números de Fibonacci, an = an _ 1 + an _ 2• Por esa razón a los árboles equilibrados construidos con esta ley de formación se les conoce como árboles de Fibonacci.
  • 31. Árbol de Fibonacci El estudio matemático de la función generadora de los números de Fibonacci permite encontrar esta relación: Tomando logaritmos se encuentra la altura h en función del número de nodos, N h : La altura de un árbol binario perfectamente equilibrado de n nodos en log n. las operaciones que se aplican a los arboles AVL no requieren más de 44% de tiempo (en el caso más desfavorable) que si se aplican a un árbol perfectamente equilibrado.