TD2

publicité
Algorithmique - TD 2
26 Novembre 2013
1
Arbres AVL
1. Écrire un algorithme qui réalise la concaténation de deux arbres AVL A1 et A2 et d’une
clé c, en supposant que toutes les clés de A1 sont strictement inférieures à c et que toutes
les clés de A2 sont strictement supérieures à c. Cet algorithme devra fonctionner en temps
O(1 + |h(A1 ) − h(A2 )|).
2. Ecrire un algorithme qui réalise la scission d’un arbre AVL A en deux arbres AVL A1 et
A2 contenant respectivement les clés de A inférieures ou égales à c pour A1 , et strictement
supérieures à c pour A2 . Cet algorithme devra fonctionner en temps O(|h(A)|).
2
Arbres 1-2 fraternels.
Un arbre 1-2 fraternel (“1-2 brother tree”) qui représente un ensemble de clés, est un arbre
binaire qui satisfait les conditions suivantes :
– chaque sommet à 1 fils a un frère à 2 fils ;
– toutes les feuilles ont la même profondeur ;
– dans chaque sommet x à deux fils est stockée une clé c telle que
clés du sous-arbre gauche de x < c < clés du sous-arbre droit de x
– aucune clé est stockée ni dans les sommets à un fils, ni dans les feuilles.
On définit l’opération de contraction d’un arbre 1-2 fraternel comme suit : chaque sommet à un
seul fils est supprimé et remplacé par son unique fils. Ensuite toutes les feuilles sont supprimées.
1. Montrer que la contraction d’un arbre 1-2 fraternel produit un arbre AVL.
On définit l’expansion d’un arbre AVL comme suit. D’abord chaque sous-arbre vide de l’arbre
AVL est remplacé par une feuille qui ne contient aucune clé. Ensuite chaque sommet x à deux fils
avec équilibre +1 ou −1 est modifié comme suit : le sous-arbre A de x le moins profond est remplacé
par un nouveau sommet (sans clé) dont l’unique sous-arbre fils est A.
2. Montrer que l’expansion de chaque arbre AVL est un arbre 1-2 fraternel.
3. Voir :
T.Ottomann, D. Wood, “1-2 brother trees or AVL trees revisited” The Computer
Journal, Vol.23, N.3
pour la description des opérations d’insertion et suppression en temps logarithmique sur les
arbres 1-2 fraternels.
1
3
Cout amorti des arbres 2-4
Soit s une suite de n opérations d’insertion et suppression dans un arbre a-b. On dénote
P (s) : le nombre total de partages effectués dans s
E(s) : le nombre total de éclatements effectués dans s
F (s) : nombre total de fusions effectuées dans s
(s)
. Démontrer que
Le coût amorti de rééquilibrage pour la suite s est défini comme P (s)+E(s)+F
n
le coût amorti de rééquilibrage de toute séquence d’insertions et suppressions dans un arbre 2-4
initialement vide est borné par 3/2.
Élements de solution Soit s une séquence d’insertions et suppressions dans un arbre 2-4 initialement vide. Soit i le nombre d’insertions dans s, et d le nombre de suppressions dans s. On
démontre que P (s) ≤ d et E(s) + F (s) ≤ n + (i − d − 1)/2 :
– On définit un arbre 2-4 partiellement équilibré comme un couple (A, x) où x est un noeud
interne de A, et A est un arbre 2-4 sauf sur le noeud x : le nombre de fils de x est 1 ≤ d(x) ≤ 5.
Remarquer que un arbre 2-4 en cours de rééquilibrage (après une insertion ou une suppression)
est un arbre partiellement équilibré.
– L’équilibre d’un noeud interne y d’un arbre 2-4 partiellement équilibré est défini comme :
(
e(y) =
0
1
−1
si d(y) = 2 ou 4
si d(y) = 3
si d(y) = 1 ou 5
L’équilibre e(A) d’un arbre 2-4 partiellement équilibré A est la somme des équilibres de tous
le noeuds internes de A.
1. Montrer que l’équilibre d’un arbre 2-4 à m feuilles est borné par (m − 1)/2.
2. Montrer qu’une opération d’insertion ou suppression sans rééquilibrage dans un arbre 2-4
diminue l’équilibre de l’arbre d’au plus 1.
3. Montrer que, sur un arbre 2-4 partiellement équilibré (A, x) où x a 5 fils, une opération
d’éclatement de x augmente l’équilibre de l’arbre d’au moins 1.
4. Montrer que, sur un arbre 2-4 partiellement équilibré (A, x) où x a 1 fils, une opération de
fusion sur x (avec un frère à deux fils) augmente l’équilibre de l’arbre d’au moins 1.
5. Montrer que sur un arbre 2-4 partiellement équilibré (A, x) où x a 1 fils, une opération de
partage sur x (avec un frère ayant au moins trois fils) ne diminue pas l’équilibre de l’arbre.
6. Conclure.
4
Arbres 2-3
Démontrer que le coût amorti du rééquilibrage dans un arbre 2-3 n’est pas constant.
Élements de solution Soit A un arbre 2-3 de hauteur h, dont tous les nœuds internes ont 3 fils.
Soit c une clé strictement plus grande que les clés figurant dans A.
1. Montrer que l’insertion de c dans A, suivi de la suppression de c, redonne l’arbre A.
2. Conclure.
2
Téléchargement