Académique Documents
Professionnel Documents
Culture Documents
Structures arborescentes
- Arbres binaires
- Arbres binaires de recherche
Sources:
1- Cours les arbres binaires, Larbi. https://www.lri.fr/~fiorenzi/Teaching/AL/C4.pdf
2- Cours algoritmique, Anne Vilnat. http://www.limsi.fr/Individu/anne/coursAlgo
3- Arbres binaires de recherche, François Denis. http://pageperso.lif.univ-mrs.fr/~francois.denis/algoMPCI/chap1.pdf
4- https://developpement-informatique.com/article/177/supprimer-un-noeud-de-larbre-binaire-de-recherche
1. Arbres binaires
2
Chap III: Structures arborescentes
Arbres binaires
Une arborescence est utilisée :
§ Dans la vie de tous les jours : pour représenter des hiérarchies, des classifications,
des partitions,...
§ En informatique pour représenter des informations de ce type et aussi pour :
• l’organisation interne des fichiers en mémoire
• les modes de calcul d’une expression
• l’organisation des données triées
§ Exemple de classification
Quelle logique?
• du plus générique au plus spécifique
• du plus ancien au plus récent
• de la plus haute autorité à la moindre
• du plus complexe au plus simple
© O.Lamouchi
3
Arbres binaires
§ Exemple d’expressions arithmétiques § Terminologie
(x-(2*y))+((x+(y/z))*3)
© O.Lamouchi
4
Chap III: Structures arborescentes
Arbres binaires
§ Définition
• Un arbre binaire c’est:
- soit un arbre vide
- soit une racine avec deux sous-arbres binaires : fils gauche et fils droit
§ La hauteur
• La hauteur d’un nœud est la longueur du plus long chemin de ce nœud aux
feuilles qui en dépendent plus 1.
• La hauteur d’un arbre est la hauteur de sa Racine (L’arbre vide a une hauteur 0)
§ La profondeur (niveau)
• La profondeur d’un nœud est le nombre de nœuds du chemin qui va de la racine
à ce nœud (La racine d’un arbre est à une profondeur 0).
• La profondeur d’un nœud est égale à la profondeur de son père plus 1. (Si un
nœud est à une profondeur p, tous ses fils sont à une profondeur p+1).
© O.Lamouchi
5
Arbres binaires
Chap III: Structures arborescentes
Info : TYPE_INFO
Info Info
FG : *NŒUD @fg @fd @fg @fd
FD : *NŒUD
Info Info Info Info
@fg @fd @fg @fd @fg @fd @fg @fd
FIN STRUCTURE
© O.Lamouchi
6
Arbres binaires
Chap III: Structures arborescentes
• Fonction vide(Arb:ArbreBinaire) retourne Booléen: Vrai si l’arbre binaire est vide, faux
sinon.
Arbres binaires
Chap III: Structures arborescentes
© O.Lamouchi
8
Arbres binaires
Chap III: Structures arborescentes
Source: 3
Procedure PaffichePrefixe(a:ArbreBinaire)
DEBUT
SI Vide(a)=FAUX Alors //Test d’arrêt
FINSI
FIN
© O.Lamouchi
9
Arbres binaires
Chap III: Structures arborescentes
Source: 3
Procedure PaffichePostfixe(a:ArbreBinaire)
DEBUT
SI Vide(a)=FAUX Alors //Test d’arrêt
FINSI
FIN
© O.Lamouchi
10
Arbres binaires
Chap III: Structures arborescentes
Source: 3
Procedure PafficheInfixe(a:ArbreBinaire)
DEBUT
SI Vide(a)=FAUX Alors //Test d’arrêt
FINSI
FIN
© O.Lamouchi
11
Arbres binaires
Chap III: Structures arborescentes
Exemples:
• Chercher la valeur 4
- Racine=1 => non • Chercher la valeur 3
// passer au fils gauche - Racine=1 => non
- Racine=2 => non // passer au fils gauche
// passer au fils gauche - Racine=2 => non
- Racine =4 => Trouvé // passer au fils gauche
- Racine =4 => non
- Pas de fils
- Pas de fils droite
// passer au fils droit
- Racine=3 => Trouvé
! Si l’élément est dans le sous arbre droit de la racine, on va quand même explorer
tout le sous-arbre de gauche
© O.Lamouchi
13
Arbres binaires
Chap III: Structures arborescentes
Exemple 2:
• Chercher la valeur 4
- File=[arbre (1)]
- Racine=1 => non
//On défile l’arbre(1) et on enfile ses 2 sous-arbres
- File= [sous-arbre gauche (1), sous-arbre droit (1)
- Racine=2 => non
//On défile la racine 2 et on enfile ses sous-arbres