Solo me pregunto si alguien podría aclararme la definición de un árbol equilibrado. Tengo que "un árbol está equilibrado si cada subárbol está equilibrado y la altura de los dos subárboles difiere como máximo en uno.
Pido disculpas si esta es una pregunta tonta, pero ¿esta definición se aplica a todos los nodos hasta las hojas de un árbol o solo a los subárboles izquierdo y derecho inmediatamente fuera de la raíz? Supongo que otra forma de enmarcar esto sería, ¿es posible que los nodos internos de un árbol estén desequilibrados y que todo el árbol permanezca equilibrado?
Respuestas:
La restricción se aplica generalmente de forma recursiva a cada subárbol. Es decir, el árbol solo está equilibrado si:
Según esto, el siguiente árbol está equilibrado:
El siguiente no está equilibrado porque los subárboles de C difieren en 2 en su altura:
Dicho esto, la restricción específica del primer punto depende del tipo de árbol. El que se menciona arriba es el típico de los árboles AVL .
Los árboles rojo-negros , por ejemplo, imponen una restricción más suave.
fuente
Hay varias formas de definir "equilibrado". El objetivo principal es mantener las profundidades de todos los nodos
O(log(n))
.Me parece que la condición de equilibrio de la que estaba hablando es para el árbol AVL .
Aquí está la definición formal de la condición de equilibrio del árbol AVL :
Siguiente pregunta, ¿qué es " altura "?
Hay un caso extraño pero común:
Por ejemplo, el hijo izquierdo de root es
null
:Dos ejemplos más para determinar:
Sí, un ejemplo de árbol equilibrado :
No, no es un ejemplo de árbol equilibrado :
fuente
No hay diferencia entre estas dos cosas. Piénsalo.
Tomemos una definición más simple: "Un número positivo es incluso si es cero o ese número menos dos es par". ¿Dice esto que 8 es incluso si 6 es par? ¿O esto dice que 8 es par si 6, 4, 2 y 0 son pares?
No hay diferencia. Si dice que 8 es par si 6 es par, también dice que 6 es par si 4 es par. Y así también dice que 4 es incluso si 2 es par. Y así dice que 2 es incluso si 0 es par. Entonces, si dice que 8 es par si 6 es par, (indirectamente) dice que 8 es par si 6, 4, 2 y 0 son pares.
Aquí es lo mismo. Cualquier subárbol indirecto se puede encontrar mediante una cadena de subárboles directos. Entonces, incluso si solo se aplica directamente a los subárboles directos, todavía se aplica indirectamente a todos los subárboles (y, por lo tanto, a todos los nodos).
fuente
El árbol equilibrado es un árbol cuya altura es del orden de registro (número de elementos en el árbol).
La definición dada "un árbol está equilibrado o cada subárbol está equilibrado y la altura de los dos subárboles difiere como máximo en uno" es seguida por árboles AVL.
Dado que los árboles AVL están equilibrados, pero no todos los árboles equilibrados son árboles AVL, los árboles equilibrados no tienen esta definición y los nodos internos pueden estar desequilibrados en ellos. Sin embargo, los árboles AVL requieren que todos los nodos internos estén equilibrados.
fuente
el objetivo del árbol equilibrado es alcanzar la hoja en un mínimo de recorrido (altura mínima). El grado del árbol es el número de ramas menos 1. Un árbol equilibrado puede no ser binario.
fuente
fuente