On dit que deux arbres de recherche binaires sont linéairement équivalents lorsqu'ils s'accordent dans leurs traversées dans l'ordre. Le théorème suivant explique pourquoi les rotations d'arbres sont si fondamentales:
Soit A et B des arbres de recherche binaires. Alors A et B sont linéairement équivalents si et seulement s'ils sont reliés par une séquence de rotations d'arbres.
J'ai remarqué ce résultat lorsque j'ai découvert pour la première fois les structures de données il y a longtemps et je voulais comprendre plus profondément le statut spécial des rotations d'arbres.
La preuve est simple et intuitive: faites pivoter le moindre élément jusqu'à la position racine le long de la colonne vertébrale gauche. Par l'ordre invariant, cet arbre réarrangé ne peut pas avoir de sous-arbre gauche. Maintenant récursif sur le sous-arbre droit. Le résultat est une forme normale pour tester l'équivalence linéaire.
Bien qu'il s'agisse d'un théorème de base, je ne l'ai jamais rencontré dans la littérature. J'apprécierais grandement une référence pour la prochaine fois que j'aurai besoin d'utiliser ce résultat.
(Bonus cerveau teaser: Quel est le meilleur algorithme pour trouver la séquence la plus courte de rotations d'arbres qui connectent deux arbres de recherche binaire linéairement équivalents?)
la source
Réponses:
Comme David Eppstein le souligne ici , même le fait de trouver le chemin le plus court pour les arbres binaires n'est pas connu en P. Dans les commentaires de cette réponse, il établit un lien vers les meilleures limites actuelles.
la source
Un des premiers articles qui a fait cette observation explicitement - que les rotations préservent les traversées dans l'ordre - est (dans la figure 2 de) les arbres de recherche binaires auto-ajustables de 1983 de Sleator et Tarjan . L'heuristique de déplacement vers la racine a été étudiée dans l'article d'Allen and Munro de 1978 sur les arbres de recherche binaires auto-organisés .
la source
Joan M. Lucas, The graph of rotation of binary trees is Hamiltonian, Journal of Algorithms, Volume 8, Issue 4, décembre 1987, Pages 503-535, ISSN 0196-6774, DOI: 10.1016 / 0196-6774 (87) 90048-4 .
Une preuve plus simple, également constructive, du fait plus simple qu'il existe un chemin hamiltonien dans le graphique de rotation peut être trouvée dans cet article ultérieur co-écrit par Lucas et ses collaborateurs.
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 .
la source
Une preuve plus simple, également constructive, du fait plus simple qu'un chemin hamiltonien sort dans le graphique de rotation peut être trouvée dans ce dernier.
la source