Pregunta

¿Cómo hace uno para 'equilibrar' un árbol de búsqueda ternario? La mayoría de las implementaciones tst No balanceo de dirección, pero sugieren la inserción en un orden óptimo (que no puedo controlar.)

¿Fue útil?

Solución

El artículo de Dr. Dobbs sobre ternario Buscar Árboles dice: D. D. Sleator y R. E. Tarjan describir algoritmos de equilibrio teóricas para ternarios árboles de búsqueda en "autoajustables árboles de búsqueda binaria" (Diario de la ACM, julio de 1985). Puede encontrar versiones en línea de este trabajo con su motor de búsqueda favorito.

Otros consejos

Una optimización sencilla es hacer que sea un árbol rojo-negro, que puede evitar algunos peores escenarios. TST son realmente los árboles binarios solo cuando el valor de un nodo dado es otro TST. Así, el niño "medio" de un nodo no es realmente parte del árbol que está siendo balanceado en cada nivel, ya que no puede pasar a un padre diferente de todos modos.

Esto asegura que cada nivel del trie es recorrido en el tiempo de registro (R), a pesar de que probablemente podría hacerlo aún mejor teniendo en cuenta el tamaño de las subtries en cada nodo. Eso parece ser mucho más complicado, aunque!

leer este artículo:

"autoajustables del ternario búsqueda intenta Uso Condicional rotaciones y aleatorizado Heurística" por "Ghada Hany * Badr y B. John Oommen †"

que le ayudará a la comprensión de auto-ajuste y el equilibrio de TST.

scroll top