• Aucun résultat trouvé

Algorithmique & programmation

N/A
N/A
Protected

Academic year: 2022

Partager "Algorithmique & programmation"

Copied!
6
0
0

Texte intégral

(1)

Algorithmique & programmation

Chapitre 5 : Arbres Parcours

Parcours d’un arbre binaire

!! Trois types de parcours

"! selon l’ordre d’examen de racine, fils gauche et

fils droit

A"

B" C"

(2)

Chapitre 5.2 3

Parcours d’un arbre binaire

!! Parcours préfixé (ou en préordre)

"! traiter la racine

"! parcourir le sous-arbre gauche

"! parcourir le sous-arbre droit

!! Exemple :

A"

B" C"

F" H" D" E"

I" R"

T"

P" M"

1"

2"

3"

4" 5"

6"

7"

8"

9"

10" 11"

12"

A B F P M H T C D I R E

Parcours préfixé d’un arbre binaire

procédure préfixé (d racine : pointeur) ;!

spécification {!}! {parcours préfixé de racine+}!

debproc!

!si racine ! nil alors!

! !traiter (racine) ;!

! !préfixé (racine".gauche) ;!

! !préfixé (racine".droite) ;!

!finsi ;!

finproc ;!

(3)

Chapitre 5.2 5

Parcours préfixé d’un arbre binaire ( ada )

procedure préfixé (racine : in Ta_Noeud) is --spec { } ! {parcours préfixé de racine+} begin

if racine /= null then traiter (racine) ;

préfixé (racine.all.gauche) ; préfixé (racine.all.droite) ; end if;

end préfixé ;

Parcours d’un arbre binaire

!! Parcours infixé (ou projectif ou symétrique)

"! parcourir le sous-arbre gauche

"! traiter la racine

"! parcourir le sous-arbre droit

A"

B" C"

7"

4" 11"

(4)

Chapitre 5.2 7

Parcours infixé d’un arbre binaire

procédure infixé (d racine : pointeur) ;!

spécification {}! {parcours infixé de racine+}"

debproc!

!si racine " nil alors!

! !infixé (racine".gauche) ;!

! !traiter (racine) ;!

! !infixé (racine".droite) ;!

!finsi ;!

finproc ;

Parcours infixé d’un arbre binaire ( ada )

procedure infixé(racine : in Ta_Noeud) is --spec { } ! {parcours préfixé de racine+} begin

if racine /= null then

préfixé (racine.all.gauche) ; traiter (racine) ;

préfixé (racine.all.droite) ; end if;

end infixé ;

(5)

Chapitre 5.2 9

Parcours d’un arbre binaire

!! Parcours postfixé (ou terminal)

"! parcourir le sous-arbre gauche

"! parcourir le sous-arbre droit

"! traiter la racine

!! Exemple :

A"

B" C"

F" H" D" E"

I" R"

T"

P" M"

12"

6"

3"

1" 2"

5"

4"

11"

9"

7" 8"

10"

P M F T H B I R D E C A

Parcours postfixé d’un arbre binaire

procédure postfixé (d racine : pointeur) ;!

spécification {!}! {parcours postfixé de racine+}"

debproc!

!si racine " nil alors!

! !postfixé (racine".gauche) ;!

! !postfixé (racine".droite) ;!

! !traiter (racine) ;!

!finsi ;!

(6)

Chapitre 5.2 11

Parcours postfixé d’un arbre binaire ( ada )

procedure postfixé (racine : in Ta_Noeud) is --spec { } ! {parcours préfixé de racine+} begin

if racine /= null then

préfixé (racine.all.gauche) ; préfixé (racine.all.droite) ; traiter (racine) ;

end if;

end postfixé ;

Références

Documents relatifs

[r]

Toujours utiliser l’algorithme optimisé si on veut faire un tri à bulles!. Performances moyennes inférieures à celles du tri

Avec la méthode de recherche

La procédure positionnera un booléen qui dira si la suppression a pu être effectuée

Les variables locales à un sous programme n'occupent de la mémoire que pendant l'exécution de ce sous programme!. Si l'on appelle successivement deux sous

Une liste linéaire chaînée est un ensemble de cellules chaînées entre

à une liste (obtenue après suppression de la première cellule de la liste d’origine)!. Si une liste liste n’est

: celle qui est pointée par