Académique Documents
Professionnel Documents
Culture Documents
16
• Pour accéder à la clé la plus grande dans un ABR il suffit de descendre sur le fils droit autant
que possible. Le dernier noeud visité, qui n’a pas de fils droit, porte la valeur la plus grande
de l’arbre.
⇒ 7, 8, 9, 16, 17, 21, 22, 23, 25, 26, 27, 28, 29,
30, 32, 34, 35, 36, 37 ...
Source: 3
© O.Lamouchi Source: 3
18
Source: 3
© O.Lamouchi
19
Arbres binaires de recherche
Chap III: Structures arborescentes
FIN
© O.Lamouchi
21
Arbres binaires de recherche
Chap III: Structures arborescentes
Source: 3
© O.Lamouchi
22
DEBUT
SI vide(a)=VRAI ALORS
a<-CreerArbre(v, NIL, NIL)
SINON
SI v < Info(a) ALORS
InsertionArb(FilsGauche(a),v)
SINON
SI v > Info(a) ALORS
InsertionArb(FilsDroite(a),v)
FINSI
FINSI
FINSI
FIN
© O.Lamouchi
23
Arbres binaires de recherche
Chap III: Structures arborescentes
1- Le noeud à supprimer est une feuille, il est terminal et il suffit de le retirer de l'arbre.
Si x est la feuille à supprimer:
- x feuille gauche alors parent(x)*.filsgauche <- Null
- x feuille droite alors parent(x)*.filsdroite <- Null
Exemple :
Source: 4
© O.Lamouchi
24
2- Le nœud à supprimer n'a qu'un seul enfant, on relie son fils à son père et on supprime le nœud .
Si x est à supprimer et il a seulement un enfant alors il y’a 4 cas en total dépendant de la position
de x et celle de son enfant:
- x est un fils gauche alors: parent(x)*.filsgauche <- filsgauche(x) ou
parent(x)*.filsgauche <- filsdroite(x)
- x est un fils droite alors: parent(x)*.filsdroite <- filsgauche(x) ou
parent(x)*.filsdroite <- filsdroite(x)
Exemple :
Source: 4
Source: 3
© O.Lamouchi Source: 3
25
Arbres binaires de recherche
Chap III: Structures arborescentes
Source: 4
© O.Lamouchi Source: 4 26
Successeur et prédécesseur
§ Si toutes les clés dans l’arbre ABR sont distinctes, le successeur d’un noeud k est le noeud
contenant la plus petite clé supérieure à k.
§ Considérons le fragment d’arbre suivant:
- Le sous-arbre A ne contient que des clés inférieures à k : il ne peut pas
contenir le successeur de k.
- Le sous-arbre B ne contient que des clés supérieures à k : il peut
contenir le successeur de k que s’il n’est pas vide.
- y désigne le plus proche ancêtre de k qui soit le fils gauche de son père
(y = k si k est fils gauche de son père). Tous les ancêtres de k jusqu’à y
sont inférieurs ou égaux à k et leurs sous-arbres gauches ne contiennent
que des valeurs inférieures à k.
- x est le père de y. Sa valeur est supérieure à toutes celles contenues
dans son sous- arbre gauche (de racine y) et donc à k et à celles de B.
Toutes les valeurs de son sous-arbre droit sont supérieures à x.
=>> Si B est non vide, son minimum est le successeur de k, sinon le successeur de k est le premier
ancêtre (ascendant) de k dont le fils gauche est aussi ancêtre de k. Si cet ascendant n’existe pas
c’est que k portait la valeur la plus grande dans l’arbre.
© O.Lamouchi
27
Arbres binaires de recherche
Chap III: Structures arborescentes
Successeur et prédécesseur
§ Exemple:
! il est nécessaire d’avoir pour chaque noeud un lien vers son père pour mener à bien cette
opération.
© O.Lamouchi
28