{
Arbre de recherche binaire
Recherche du suivant inordre avec l'opération PERE
}
SOIENT
A UN
ARB
;
I , Val DES
ENTIERS
;
Recherche UNE
ACTION
;
Suivant_inordre UNE
ACTION
;
DEBUT
CREER_ARB
( A , [ 23 , 15 , 45 , 18 , 22 , 10 , 13 , 78 , 32 , 50 ] ) ;
POUR
I := 1 , 5
LIRE
( Val ) ;
APPEL
Suivant_inordre ( A , Val ) ;
FINPOUR
FIN
{ Recherche De Val
Dans L'Arbre A }
ACTION
Recherche ( A , Val , P , Trouv )
SOIENT
A UN
ARB
;
P UN
POINTEUR
VERS
ARB
;
Val : ENTIERS
;
Trouv UN
BOOLEEN
;
DEBUT
Trouv := FAUX
;
P := A ;
TANTQUE
( P <> NIL
) ET
( NON
Trouv ) :
SI
INFO
( P ) = Val
Trouv := VRAI
SINON
SI
INFO
( P ) < Val
P := FD
( P )
SINON
P := FG
( P )
FSI
FSI
FTQ
;
FIN
{ SUIVANT Inordre
D'UN Noeud }
ACTION
Suivant_inordre ( A , Val )
SOIENT
A : ARB
;
Val : ENTIER
;
Trouv , Continue DES
BOOLEENS
;
Q , P DES
POINTEURS
VERS
ARB
;
DEBUT
{ Recherche De Val
}
APPEL
Recherche ( A , Val , P , Trouv ) ;
SI
NON
Trouv
ECRIRE
( 'ELEMENT
Inexistant ' )
SINON
SI
FD
( P ) <> NIL
P := FD
( P ) ;
TQ
FG
( P ) <> NIL
P := FG
( P )
FTQ
;
ECRIRE
( 'Suiv_inordre
=' , INFO ( P ) )
SINON
Q := PERE
( P ) ;
Continue := VRAI
;
TANTQUE
( Q <> NIL
) ET
Continue
SI
P = FD
( Q )
P := Q ;
Q := PERE
( P ) ;
SINON
Continue
:= FAUX
FSI
FTQ
;
SI
Q <> NIL
ECRIRE
( 'Suiv_inordre
=' , INFO ( Q ) )
SINON
ECRIRE
( 'Pas
De SUIVANT Inordre' )
FSI
FSI
FSI
FIN