Se dice que dos árboles de búsqueda binarios son linealmente equivalentes cuando están de acuerdo en sus recorridos en orden. El siguiente teorema explica por qué las rotaciones de árboles son tan fundamentales:
Deje que A y B sean árboles binarios de búsqueda. Entonces A y B son linealmente equivalentes si y solo si están conectados por una secuencia de rotaciones de árbol.
Noté este resultado cuando aprendí por primera vez acerca de las estructuras de datos hace mucho tiempo y quería comprender más profundamente el estado especial de las rotaciones de árboles.
La prueba es simple e intuitiva: gire el elemento mínimo hasta la posición de la raíz a lo largo de la columna vertebral hacia la izquierda. Por el orden invariante, este árbol reordenado no puede tener un subárbol izquierdo. Ahora recurse en el subárbol derecho. El resultado es una forma normal para probar la equivalencia lineal.
Si bien es un teorema básico, nunca lo he encontrado en la literatura. Agradecería enormemente una referencia para la próxima vez que necesite usar este resultado.
(Bonus brain teaser: ¿Cuál es el mejor algoritmo para encontrar la secuencia más corta de rotaciones de árboles que conectan dos árboles de búsqueda binarios linealmente equivalentes?)
fuente
Respuestas:
Como David Eppstein señala aquí , incluso no se sabe que encontrar el camino más corto para árboles binarios se encuentra en P. En los comentarios a esa respuesta, se vincula a los mejores límites actuales
fuente
Un primer artículo que hizo esta observación explícitamente (que las rotaciones preservan los recorridos internos) es (en la Figura 2 de) los árboles de búsqueda binaria autoajustable de Sleator y Tarjan de 1983 . La heurística de mover a la raíz se estudió en el artículo de 1978 Autoorganizing Binary Search Trees de Allen and Munro .
fuente
Dado que está interesado en la estructura de las rotaciones de árboles, creo que también puede estar interesado en el siguiente documento, que muestra que el gráfico de rotación de árboles binarios de un número fijo de nodos tiene un ciclo hamiltoniano . De hecho, Lucas demostró que el ciclo puede atravesarse con un retraso constante por árbol. (Se puede realizar una rotación enO ( 1 ) tiempo, por supuesto, pero no es obvio a priori que podamos decidir qué rotación realizar a lo largo del ciclo hamiltoniano en O ( 1 ) tiempo.) Naturalmente, también puede estar interesado en las referencias dentro.
Joan M. Lucas, El gráfico de rotación de árboles binarios es Hamiltoniano, Journal of Algorithms, Volumen 8, Número 4, diciembre de 1987, páginas 503-535, ISSN 0196-6774, DOI: 10.1016 / 0196-6774 (87) 90048-4 .
Una prueba más simple, también constructiva, del hecho más simple de que existe un camino hamiltoniano en el gráfico de rotación se puede encontrar en este artículo posterior en coautoría de Lucas y sus colaboradores.
Lucas JM, Vanbaronaigien DR, Ruskey F., On Rotations and the Generation of Binary Trees, Journal of Algorithms, Volume 15, Issue 3, November 1993, Pages 343-366, ISSN 0196-6774, DOI: 10.1006 / jagm.1993.1045 .
fuente
Una prueba más simple, también constructiva, del hecho más simple de que una ruta hamiltoniana sale en el gráfico de rotación se puede encontrar en este último.
fuente