Vous êtes sur la page 1sur 6

var

res :boolean
max_arb_gauche :entier
min_arb_droite :entier
Début
si racine(arb) = NiLL // on prend par default l’arbre vide est une arbre de recherche.
res<-vrai
// verifier les valeurs dans la sous-arbre gauche
si ( arb^.gauche <> NiLL)
Max_arb_gauche <- max_arb(arb^.gauche) // max_arb() fonction retourner
la valeur maximal d’arbre .
si max_arb_gauche > arb^.info
res<-faux
// verifier les valeurs dans la sous-arbre droite .
si arb^.droit <> NiLL
min_arb_droite <- min_arb(arb^.droite)//min_arb() retourner le minimum de
l’arbre
si min_arb_droite < arb^.info
res<-faux
res<-(EstAbr(arb^.gauche) et EstAbr(arb^.droite)) // c’est-à-dire on appelle la
fonction EstArb récursivement pour la sous arbre gauche et la sous arbre droite
pour parcourir tout l’arbre et on applique l’opération « et » car si l’un de sous
arbre n’est pas arbre binaire de recherche (Abr) toute l’arbre ne sera pas une
Abr .
retourner(res)
FIN.
Pour notre arbre d’exercice 1 :

Nœud Nœudpere Résultat
5 - 6 c’est le
(5 ce
trouve
- minimum
dans - dans le
l’arbre)
nœud
droite de
5


Nœud Nœudpere Résultat

4 - La valeur
final de
nœud père
3 3 c’est 5.
3 5

Si (gauche(x) = Nil et droit(x) = Nil )Alors //1ere cas si le nœud n’a


pas d’enfant
Si père(x) = Nil Alors //arbre contient que la racine.
racine(T) <- Nil
Sinon // on teste si le nœud est à gauche ou à droite.
Si x = gauche(père(x)) Alors
gauche(père(x)) <- Nil

Sinon droit(père(x)) <- Nil


FinSi
FinSi
Sinon Si gauche(x) = Nil Ou droit(x) = Nil Alors// 2éme cas si le nœud a
un fil soit gauche ou droite.
Si gauche(x) <> Nil Alors //on voir si le fil de n se trouve à gauche ou à droite.
filsde_x <- gauche (x)
Sinon filsde_x <- droit(x)
FinSi
père(filsde_x) <-père(x)
Si père(x) = Nil Alors // n est un racine qui se pointe sur le fil de n et
donc n se suprime.
racine(T) <- filsde_x
Sinon //n n’est pas un racine.
Si gauche(père(x)) =x Alors
gauche(père(x)) <- filsde_x
Sinon
droit(père(x)) <- filsde_x
FinSi
FinSi
Sinon //3éme cas le nœud a un fil droite et un fil gauche .
xmin <- ABRMinimum(droit(x))
info(y) <- info(xmin)
ABRSuppression(T,xmin)
FinSi
Fin