INFO-F-203 Algorithmique II: Ch-2 Arbres binaires de recherche, Rouges-Noirs Exercice 1 1. Dessiner des arbres binaires de recherche de hauteur 2, 3, 4, 5 et 6 pour le même ensemble de clés {1, 4, 5, 10, 16, 17, 21}. 2. Donner un algorithme non récursif qui effectue un parcours infixe. 3. Donner des algorithmes récursifs qui effectuent les parcours préfixe et postfixe en un temps Θ(n) sur un arbre à n noeuds. 4. Montrer que, puisque le tri de n éléments prend un temps Ω(n log(n)) dans le cas le plus défavorable dans le modèle de comparaison, tous algorithme basé sur ce modèle qui construit un arbre binaire de recherche à partir d’une liste arbitraire de n éléments s’effectue au pire en Ω(n log(n)). Exercice 2 1. On suppose que des entiers compris entre 1 et 1000 sont disposés dans un arbre binaire de recherche et que l’on souhaite trouver le nombre 363. Parmi les séquences suivantes, lesquelles ne pourraient pas être la suite des noeuds parcourus ? – 2, 252, 401, 398, 330, 344, 397, 363. – 924, 220, 911, 244, 898, 258, 362, 363. – 925, 202, 911, 240, 912, 245, 363. – 2, 399, 387, 219, 266, 382, 381, 278, 363. – 935, 278, 347, 621, 299, 392, 358, 363. 2. Le professeur Norris pense avoir découvert une remarquable propriété des arbres binaires de recherche. Supposez que la recherche d’une clé k dans un arbre binaire de recherche se termine sur une feuille. On considère trois ensembles : A, les clés situées à gauche du chemin de recherche ; B, celle située sur le chemin de recherche ; et C, les clés situées à droite du chemin de recherche. Le professeur Norris affirme que, étant donnés trois a ∈ A, b ∈ B, c ∈ C quelconques, ils doivent satisfaire à a ≤ b ≤ c. Est-ce que c’est vrai ? Si oui, dire pourquoi ; sinon, donner un contre-exemple. 3. Montrer que, si un noeud d’un arbre binaire de recherche a deux enfants, alors son successeur n’a pas d’enfant de gauche et son prédécesseur n’a pas d’enfant de droite quand toutes les clés sont différentes. 4. Soit un arbre binaire de recherche T dont les clés sont distinctes. Montrer que, si le sous-arbre de droite d’un noeud x dans T est vide et que x a un successeur y, alors y est l’ancêtre le plus bas de x dont l’enfant de gauche est aussi un ancêtre de x. (Ne pas oublier que chaque noeud est son propre ancêtre.) 1 Exercice 3 1. On peut trier un ensemble donné de n nombres en commençant par construire un arbre binaire de recherche contenant ces nombres (en répétant ARBRE-INSÉRER pour insérer les nombres un à un), puis en imprimant les nombres via un parcours infixe de l’arbre. Quels sont les temps d’exécution de cet algorithme de tri, dans le pire et dans le meilleur des cas ? 2. L’opération de suppression est-elle commutative au sens où la suppression de x puis de y dans un arbre binaire de recherche produit le même arbre que la suppression de y puis de x ? Si oui, dire pourquoi ; sinon, donner un contre-exemple. 3. Montrer que tout arbre binaire de recherche à n noeuds peut être transformé en n’importe quel autre arbre binaire de recherche à n noeuds, à l’aide de O(n) rotations. (Conseil : Commencer par montrer qu’au plus n − 1 rotations droite suffisent à transformer l’arbre en une chaine orientée vers la droite.) Exercice 4 1. Supposons que l’on absorbe chaque noeud rouge d’un arbre rouge-noir dans son parent noir, de façon que les enfants du noeud rouge deviennent des enfants du parent noir. (On ne se préoccupe pas de ce qu’il advient des clés.) Quels sont les degrés possibles d’un noeud noir après absorption de tous ses enfants rouges ? Que peut-on dire des profondeurs des feuilles de l’arbre résultant ? 2. Montrer que le chemin simple le plus long reliant un noeud x d’un arbre rouge-noir à une feuille a une longueur qui est au plus égal à deux fois celle du plus court chemin simple reliant le noeud x à une feuille. 3. Quel est le plus grand nombre possible de noeuds internes d’un arbre rouge-noir de hauteur noire k ? Quel est le plus petit nombre possible ? 4. Montrer les arbres rouge-noir qui résultent de l’insertion successive des clés : 41, 38, 31, 12, 19, 8 dans un arbre rouge-noir initialement vide. 5. Montrer les arbres rouge-noir issue de la suppression successive des clés : 8, 12, 19, 31, 38, 41 de l’exercice précédent. 2