LS (Univ. licante) 3.. Árboles VL NONS () La eficiencia en la búsqueda de un elemento en un árbol binario de búsqueda se mide en términos de: Número de comparaciones La altura del árbol Árbol completamente equilibrado: los elementos del árbol deben estar repartidos en igual número entre el subárbol izquierdo y el dereco, de tal forma que la diferencia en número de nodos entre ambos subárboles sea como muco 1 Problema: el mantenimiento del árbol Árboles VL: desarrollado por delson-velskii y Landis (196). Los VL son árboles balanceados (equilibrados) con respecto a la altura de los subárboles: Un árbol está equilibrado respecto a la altura si y solo si para cada uno de sus nodos ocurre que las alturas de los dos subárboles difieren como muco en 1 onsecuencia 1. Un árbol vacío está equilibrado con respecto a la altura onsecuencia. l árbol equilibrado óptimo será aquél que cumple: n = - 1, donde n = nº nodos y = altura 1 LS (Univ. licante) 3.. Árboles VL NONS () Si T es un árbol binario no vacío con TL y TR como subárboles izquierdo y dereco respectivamente, entonces T está balanceado con respecto a la altura si y solo si TL y TR son balanceados respecto a la altura, y l - r 1 donde l y r son las alturas respectivas de TL y TR l factor de equilibrio ( T ) de un nodo T en un árbol binario se define como r - l. Para cualquier nodo T en un árbol VL, se cumple ( T ) = -1,, 1
LS (Univ. licante) 3.. Árboles VL OPRONS ÁSS. NSRÓN () Representación de árboles VL Mantener la información sobre el equilibrio de forma implícita en la estructura del árbol tribuir a, y almacenar con, cada nodo el factor de equilibrio de forma explícita TNodorb { T f; Trbin fiz, fde; int ; } nserción en árboles VL. asos: espués de la inserción del ítem, los subárboles y igualarán sus alturas = = - -1 ó -1-3 LS (Univ. licante) 3.. Árboles VL OPRONS ÁSS. NSRÓN () espués de la inserción, y tendrán distinta altura, pero sin vulnerar la condición de equilibrio = -1 = -1 ó -1 Si > y se realiza inserción en, ó < y se realiza inserción en ormas de rotación:,,, -1 = - = + ROTÓN (-,-1) 4
LS (Univ. licante) 3.. Árboles VL OPRONS ÁSS. NSRÓN () = + = ROTÓN (+,) + = - = ROTÓN (-,) + -1 ó ó = + = ROTÓN (+,-1) + -1-1 ó ó LS (Univ. licante) 3.. Árboles VL OPRONS ÁSS. NSRÓN. JMPLO (V) jemplo. nsertar en el siguiente árbol los elementos y 1 8-1 8-6 4 1 insertar 4 1 4-1 6 6 6 6 + insertar 1 4 8 4 1 1 7 8 1 1 8 1 Hay que tener en cuenta que la actualización del de cada nodo se efectúa desde las ojas acia la raíz del árbol 6
LS (Univ. licante) 3.. Árboles VL OPRONS ÁSS. NSRÓN. MPLMNTÓN (V) LORTMO NSRTR NTR/SL : VL; c : tem VR : terador ; rece : nteger ; MTOO = Primer ( ) ; nsertarux (, c, rece ) ; fmtoo LORTMO NSRTRUX NTR/SL : terador; rece: nteger; c : tem ; VR recez, recee : nteger ; : rbol ; MTOO si svaciorbt ( ) entonces = nraizar ( c ) ; Mover (, ) ; rece = TRU ; sino rece = recez = recee = LS ; si ( c < Obtener ( ) ) entonces NSRTRUX ( Hijozq ( ), c, recez ) ; rece = recez ; sino si ( c > Obtener ( ) ) entonces NSRTRUX ( Hijoer ( ), c, recee ) ; rece = recee ; si rece entonces caso de: 1) ( recez y ( ) = 1 ) ó ( recee y ( ) = -1 ) : rece = LS ; ( ) = ; ) recez y ( ) = : ( ) = -1 ; 3) recee y ( ) = : ( ) = 1 ; 4) recez y ( ) = -1 : quilibrarzquierda (, rece ) ; ) recee y ( ) = 1 : quilibrarereca (, rece ) ; fcaso fmtoo 7 LS (Univ. licante) 3.. Árboles VL OPRONS ÁSS. NSRÓN. MPLMNTÓN (V) LORTMO QULRRZQUR NTR/SL : terador; rece: nteger; VR J, K: terador; int ; MTOO si ( (Hijozq ( ) = -1 entonces //ROTÓN Mover (J, Hijozq ()); Mover (Hijozq (), Hijoer (J)); Mover (Hijoer (J), ); (J) = ; (Hijoer (J)) = ; Mover (,J); sino //ROTÓN Mover (J, Hijozq ()); Mover (K, Hijoer (J)); = (K); Mover (Hijozq (), Hijoer (K)); Mover (Hijoer (J), Hijozq (K)); Mover (Hijozq (K), J); Mover (Hijoer (K), ); (K) = ; caso de -1: (Hijozq (K)) = ; (Hijoer (K)) = 1; : (Hijozq (K)) = -1; (Hijoer (K)) = ; : (Hijozq (K)) = ; (Hijoer (K)) = ; fcaso Mover (, K); rece = LS; fmtoo 8
LS (Univ. licante) 3.. Árboles VL JROS inserción 1) onstruir un árbol VL formado por los nodos insertados en el siguiente orden con etiquetas 4,, 7,, 1, 3, 6 ) nsertar las mismas etiquetas con el siguiente orden: 1,, 3, 4,, 6, 7 9 LS (Univ. licante) 3.. Árboles VL JROS inserción: SOLUÓN 1) La solución para los ejercicios es la siguiente: 4 6 1 3 7 1
LS (Univ. licante) 3.. Árboles VL OPRONS ÁSS. ORRO () orrado en árboles VL. asos: orrar el ítem nos llevará en el árbol a un =, no será necesario reequilibrar = = -1 = - -1 ó -1 - - orrar el ítem nos llevará en el árbol a un = ±1, en este caso tampoco será necesario reequilibrar -1 = = ó -1 = -1 = ó - - 11 LS (Univ. licante) 3.. Árboles VL OPRONS ÁSS. ORRO () Rotaciones simples ROTÓN (+,) = + -1 = -1 = = (+,) La altura del árbol decrece + -1-1 1
LS (Univ. licante) 3.. Árboles VL OPRONS ÁSS. ORRO () Rotaciones simples ROTÓN (-,) = -1 + = -1 = -1 = (-,-1) La altura del árbol decrece -1-1 + -1 13 LS (Univ. licante) 3.. Árboles VL OPRONS ÁSS. ORRO (V) Rotaciones dobles ROTÓN (+,-1) La altura del árbol decrece + = -1-1 = ó ó ROTÓN (-,) La altura del árbol decrece + = -1 = -1 ó ó 14
LS (Univ. licante) 3.. Árboles VL OPRONS ÁSS. NSRÓN Y ORRO studio de las complejidades de ambos algoritmos l análisis matemático del algoritmo de inserción es un problema todavía no resuelto. Los ensayos empíricos apoyan la conjetura de que la altura esperada para el árbol VL de n nodos es = log ( n ) + c / c es una constante pequeña stos árboles deben utilizarse sólo si las recuperaciones de información (búsquedas) son considerablemente más frecuentes que las inserciones debido a la complejidad de las operac. de equilibrado Se puede borrar un elemento en un árbol equilibrado con log ( n ) operaciones ( en el caso más desfavorable ) iferencias operacionales de borrado e inserción: l realizar una inserción de una sola clave se puede producir como máximo una rotación ( de dos o tres nodos ) l borrado puede requerir una rotac. en todos los nodos del camino de búsqueda Los análisis empíricos dan como resultado que, mientras se presenta una rotación por cada dos inserciones, sólo se necesita una por cada cinco borrados. l borrado en árboles equilibrados es, pues, tan sencillo ( o tan complicado ) como la inserción 1 LS (Univ. licante) 3.. Árboles VL JROS borrado 1) ado el siguiente árbol VL de entrada, efectuar los siguientes borrados en el mismo: 4, 8, 6,,, 1, 7. (Nota: al borrar un nodo con ijos, sustituir por el mayor de la izquierda) 3 8 4 7 1 1 6 9 11 16
LS (Univ. licante) 3.. Árboles VL JROS borrado ) ado el siguiente árbol VL de entrada, efectuar los siguientes borrados en el mismo:, 3, 4, 3. (Nota: al borrar un nodo con ijos, sustituir por el mayor de la izquierda) 4 3 3 4 1 3 4 17 LS (Univ. licante) 3.. Árboles VL JROS borrado: SOLUÓN ) La solución es la siguiente: 1 4 3 4 18