Los árboles
AVL 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. El factor de equilibrio puede ser almacenado
directamente en cada nodo o ser computado a partir de las alturas de los
subárboles.
Factor de equilibrio:
Cada nodo, además de la información que se pretende almacenar,
debe tener los dos punteros a los árboles derecho e izquierdo, y además
el dato que controla el factor de equilibrio.
El factor 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á equilibrado y su subárbol derecho es un nivel
más alto.
-1 -> el nodo está equilibrado y su subárbol izquierdo es un
nivel más alto.
Si el factor de equilibrio 1<F<-1 es necesario reequilibrar.
No hay comentarios:
Publicar un comentario