INFO-F-203 Algorithmique II: Ch-2 Arbres binaires de recherche

publicité
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
Téléchargement