¿Cuántos casos hay para reequilibrar los árboles AVL?

Los árboles AVL tienen una altura equilibrada [1] y, en promedio, son más rápidos que los árboles rojo-negros que tienen un peso equilibrado. La propiedad de equilibrio: las alturas de cada uno de los dos Subárboles secundarios difieren en casi [matemáticas] 1 [/ matemáticas].
Dicho esto, el equilibrio está asegurado por una operación básica llamada: Tree Rotations [2]. Para el tipo específico de árbol, se pueden identificar cuatro casos :

  • Rotación a la izquierda . Rotación en la raíz . [matemáticas] 3 [/ matemáticas] es el hijo correcto de [matemáticas] 2 [/ matemáticas], [matemáticas] 2 [/ matemáticas] es el hijo correcto de [matemáticas] 1 [/ matemáticas]. [math] 2 [/ math] se convierte en la nueva raíz, [math] 1 [/ math] toma posesión de cualquier hijo izquierdo de [math] 2 [/ math] y [math] 3 [/ math] toma posesión de cualquier hijo correcto de [math] 2 [/ math].

  • Rotación a la derecha . Rotación en la raíz . [matemáticas] 3 [/ matemáticas] se deja hijo de [matemáticas] 4 [/ matemáticas], [matemáticas] 4 [/ matemáticas] se queda hijo de [matemáticas] 5 [/ matemáticas]. [math] 4 [/ math] se convierte en la nueva raíz, [math] 3 [/ math] toma posesión de cualquier hijo izquierdo de [math] 4 [/ math] y [math] 5 [/ math] toma posesión de cualquier hijo correcto de [math] 5 [/ math].

  • Rotación izquierda-derecha . Solo una rotación no es suficiente para reequilibrar: el Subárbol derecho queda pesado. Rotación a la derecha Subárbol . Al realizar una rotación a la derecha en el subárbol derecho, se prepara para la rotación definitiva a la izquierda. [matemáticas] 6 [/ matemáticas] se convierte en la raíz del Subárbol que tiene [matemáticas] 8 [/ matemáticas] como hijo derecho; finalmente, [matemática] 6 [/ matemática] se convierte en la raíz del Árbol, teniendo [matemática] 5 [/ matemática] como hijo izquierdo y [matemática] 8 [/ matemática] como hijo derecho.

  • Rotación derecha-izquierda . Solo una rotación no es suficiente para reequilibrar. Rotación a la izquierda Subárbol . Al realizar una rotación hacia la izquierda en el subárbol izquierdo, se prepara para la rotación hacia la derecha definitiva. [math] 7 [/ math] se convierte en la raíz del Subárbol que tiene [math] 6 [/ math] como hijo izquierdo; finalmente [math] 7 [/ math] se convierte en la raíz del Árbol, teniendo [math] 6 [/ math] como hijo izquierdo y [math] 8 [/ math] como hijo derecho.

Notas al pie

[1] árbol AVL

[2] http://www.cise.ufl.edu/~nemo/co…

Yo pienso 4.
1. Girar a la izquierda
2. Girar a la derecha
En doble rotación
3. Rotación izquierda con niño derecho
4. Rotación derecha con niño izquierdo

More Interesting

¿Cómo paso la matriz asociativa como un argumento con los elementos de esa matriz que se pasan en un orden específico?

¿Cuál es el mejor algoritmo para encontrar la ruta más corta en un gráfico orientado, donde algunos bordes están bloqueados y las teclas están en algún lugar de los nodos?

¿Cómo funciona Git Merge?

¿Cuál es el algoritmo de árboles extra en el aprendizaje automático?

¿Cuáles son los rompecabezas de algoritmos de notación O más interesantes?

¿Cómo está negando este código todos los números en mi matriz?

¿Cuáles son las principales diferencias en términos de definición / idea clave, dominio de aplicación y eficiencia entre árboles de segmento, árboles de intervalo, árboles indexados binarios y árboles de rango?

¿Cuál es el mejor algoritmo para la optimización convexa sin restricciones de propósito general?

¿Cuál es la mejor manera de aprender estructuras de datos y Java?

¿Es un árbol binario perfecto también un árbol binario completo?

¿Cuáles son algunos buenos proyectos en el algoritmo de optimización de colonias de abejas en los que puedo trabajar como proyecto de mi último año?

¿Alguien puede explicar el algoritmo de programación Round Robin?

¿Cómo puede 100 determinar el número de comparaciones en 'Búsqueda binaria'?

¿Es posible la generación de números aleatorios verdaderos?

¿Cuál es el significado de usar una cola prioritaria en el algoritmo de Dijkstra? ¿Qué diferencia hay si usamos una cola normal?