algorithmie
NIL: x = fd(x)
def ABR-min(x): while fg(x) return x
NIL: x = fg(x)
Si on souhaite calculer la complexité de ces procédures, il suffit de constater qu’à chaque étape on descend d’un niveau. La complexité dans le pire cas est donc en O(h) où h est la hauteur de l’arbre de racine x.
Soient x1 , x2 , . . . x9 des sommets d’un ABR et soit R une relation d’ordre ; supposons que le parcours infixe de l’arbre donne l’ordre des sommets suivants : x1 , x3 , x7 , x2 , x4 , x6 , x8 , x9 , x5 x3 est le prédécesseur de x7 ; x5 est le successeur de x9
Schéma de solution 2 (∗) x est une feuille de B ; y est le pere de x. Par conséquent on a soit x = fg(y) (en d’autre terme, l’ABR de racine y vaut y, x, ∅, ∅ , B ) soit x = fd(y) (en d’autre terme, l’ABR de racine y vaut y, B, x, ∅, ∅ ). Le parcours infixe visite dans l’ordre le sous-arbre gauche, la racine, le sous-arbre droit. Dans le premier cas, le parcours infixe de l’ABR de racine y produira x, y, . . . ; dans le second cas on obtiendra . . . , y, x.
Conclusion y sera dans un cas le successeur de x et dans l’autre son prédécesseur.
Schéma de solution 3 (∗)
– Soit x un sommet ayant deux fils a et b, et soit y le prédecesseur de x, z le successeur de x. Alors nécessairement y et z appartiennent à l’arbre de racine
x. Supposons que y n’est pas dans le sous-arbre de racine x, il y a deux cas à considérer :
1. x appartient au sous-arbre de racine y ; du fait du parcours infixe, x est obligatoirement dans le sous-arbre droit de y (par hypothèse y est prédécesseur de x, mais le sommet a sera visité avant le sommet x (il y aura donc a entre y et x). Ce cas est donc impossible
1
2. x n’appartient pas au sous-arbre de racine y ; il existe donc un ancêtre commun w à x et y. À cause du parcours infixe, le sommet w sera visité après y et avant x ; y ne pourra pas être le prédécesseur de x (il y aura au moins w entre eux). Ce