Árbol binario equilibrado Árbol AVL

Definición de árbol binario equilibrado

El árbol binario equilibrado también se conoce como:
árbol de búsqueda binaria autoequilibrado o árbol de búsqueda binaria equilibrado en altura: un árbol de clasificación binaria altamente equilibrado.
Árbol binario balanceado : Es una especie de árbol de ordenamiento binario, la diferencia de altura entre el subárbol izquierdo y el subárbol derecho de cada nodo es menor o igual a uno.
Dos matemáticos rusos, GM Adelson-Velskii y EM Landis , inventaron conjuntamente un algoritmo para resolver un árbol binario balanceado en 1962. Este árbol binario equilibrado también se denomina árbol AVL.

  1. Simplemente analice si el siguiente árbol binario es un árbol binario balanceado (árbol AVL)
    Inserte la descripción de la imagen aquí
    . La Figura 1 cumple con los requisitos de clasificación (recorrido intermedio: 35 47 58 62 88 93 99); pero el valor absoluto de la diferencia de altura entre la izquierda y la derecha subárboles de la segunda capa 58 88 nodos es mayor que 1.. Entonces, la Figura 1 no es un árbol AVL.
    La Figura 2 satisface que la diferencia de altura entre los subárboles izquierdo y derecho de cada nodo es menor o igual a 1, pero no cumple con los requisitos de clasificación, 59 es mayor que 58 nodos; por lo tanto, no es un árbol AVL.
    La Figura 3 cumple con los requisitos de clasificación, pero la altura del subárbol izquierdo del nodo 58 es 2 y la altura del subárbol derecho es 0; por lo tanto, no es un árbol binario equilibrado.
    La Figura 4 satisface los requisitos de clasificación y también la condición de que la diferencia de altura entre los subárboles izquierdo y derecho de cada nodo sea menor que uno. Entonces es un árbol binario balanceado o árbol AVL.

Subárbol desequilibrado mínimo

Subárbol desequilibrado mínimo : El subárbol que tiene sus raíces en el nodo más cercano al nodo insertado y cuyo valor absoluto del factor de equilibrio es mayor que 1 , es el subárbol desequilibrado mínimo. Por ejemplo, cuando se inserta 37, el nodo 58 es el nodo más cercano con un factor de equilibrio mayor que 1; entonces, el subárbol con raíz en 58 es el subárbol desequilibrado más pequeño.

Inserte la descripción de la imagen aquí

El principio de realización del árbol binario equilibrado

El principio de realización del árbol binario equilibrado: la idea de la construcción de un árbol binario equilibrado es que cada vez que se inserta un nodo, primero verifique si el equilibrio del árbol está dañado por la inserción y, de ser así, encuentre el árbol equilibrado mínimo. Bajo la condición de mantener las características del árbol de ordenamiento binario, la relación de enlace entre los nodos en el árbol desequilibrado mínimo se ajusta y rota para convertirlo en un nuevo subárbol equilibrado.

Demostración : Operación para lograr un árbol binario balanceado con arreglo a [10] = [3,2,1,4,5,6,7,10,9,8]:
Primero, inserte un nodo en el árbol y registre los datos de cada nodo Factor de equilibrio.
Factor de equilibrio = la profundidad del subárbol izquierdo - la profundidad del subárbol derecho. La profundidad es igual al número de capas del árbol.
Cuando el factor de equilibrio es mayor que 1, ajuste la rotación del nodo del subárbol menos desequilibrado .
Inserte la descripción de la imagen aquí
Inserte el nodo 1, el factor de equilibrio del nodo 3 es 2> 1, ajuste todo el subárbol a diestro; inserte el nodo 4;
Inserte la descripción de la imagen aquí
inserte el nodo 5, el factor de equilibrio de los 3 nodos más cercanos es -2, el valor absoluto es mayor que 1. Todo el subárbol del nodo 3 Zurdo.
Inserte la descripción de la imagen aquí
Inserte el nodo 6, el factor de equilibrio del nodo 2 es -2, todo el árbol es el subárbol desequilibrado más pequeño, zurdo, 4 nodos se convierten en la raíz, el subárbol izquierdo de 4 se convierte en el subárbol derecho del nodo 2 y el equilibrio es alcanzado;
Inserte la descripción de la imagen aquí
inserte el nodo 7. El factor de equilibrio del nodo 5 es -2, y el subárbol desequilibrado mínimo es zurdo; inserte el nodo 10;
Inserte la descripción de la imagen aquí
inserte el nodo 9; el nodo 7 está desequilibrado y debería ser zurdo en este momento, pero 9 <10 no puede ser el nodo derecho de 10; a
través de la observación, inserte el nodo antes, simplemente zurdo y diestro es porque la raíz del subárbol y los hijos izquierdo y derecho tienen el mismo signo del factor de equilibrio. Por lo tanto, los símbolos del factor de equilibrio deben ajustarse para que sean consistentes aquí. Gire los nodos 10 y 9 a la derecha.
Inserte la descripción de la imagen aquí
Luego rote el árbol desequilibrado mínimo hacia la izquierda; inserte el nodo 8;
Inserte la descripción de la imagen aquí
en este momento, es necesario rotar el subárbol de 6 nodos hacia la izquierda, pero el factor de equilibrio del nodo 9 es inconsistente con el signo del nodo 6, y rotar el subárbol del nodo 9 a la derecha.
Inserte la descripción de la imagen aquí
Luego, rote el subárbol del nodo 6 hacia la izquierda.
De esta forma se completa la construcción de un árbol binario equilibrado.

Implementación de algoritmos

Esto no se omite, ¡esperando la actualización! !

referencias

[1] "Estructura de datos de Dahua" Cheng Jie [M].

Supongo que te gusta

Origin blog.csdn.net/beauthy/article/details/105578056
Recomendado
Clasificación