Les Arbres - Jihene Tounsi

publicité
ALGORITHME ET
STRUCTURES DE DONNÉES II
LES ARBRES
Dr. Jihène Tounsi
ISG de Sousse
Site web http://www.jihenetounsi.com
Email: [email protected]
Cours développé par Dr. Jihène Tounsi
Qu’est ce qu’un Arbre (1/2)


Les files, les piles, les listes ainsi que les tableaux
sont des structures linéaires.
Les arbres sont des structures complexes non
linéaires
 A,
B, C, G, D, E et F sont des nœuds
 A donne accès à B et C.
 B donne accès à G, D et E.
 C donne accès à F.
A
B
G
D
C
E
F
Cours développé par Dr. Jihène Tounsi
Qu’est ce qu’un Arbre (2/2)







Un arbre possède une seule racine « A »
Un nœud possède 0…n Enfants
Un nœud sans enfants s’appelle une feuille
A est le père de B et C
B est lui aussi le père de G, D et E
A
G, D et E sont les fils de B
…
B
G
D
C
E
F
Les arbres Binaires

Un nœud ne peut donner naissance qu’au maximum
2 Nœuds
 Fils
gauche
 Fils droit

Un arbre binaire est composé de plusieurs sous
arbres
Cours développé par Dr. Jihène Tounsi
Implémentation de l’Arbre


Le nombre des éléments à stocker n’est pas connu à
l’avance.
Implémentation à chaînage simple
 Utilisation
d’un pointeur pour le fils gauche.
 Utilisation d’un pointeur pour le fils côté droit.
Cours développé par Dr. Jihène Tounsi
Structure de l’Arbre

Un enregistrement pour la cellule ou l’élément de
l’Arbre
 Donnée
: l’élément à stocker.
 Filsgauche: Un pointeur sur le fils gauche.
 Filsdroit: Un pointeur sur le fils droit

Un Pointeur sur la racine de l’arbre
Cours développé par Dr. Jihène Tounsi
Structure de l’Arbre
Algorithme_ExempleArbre;
Type
Element = enregistrement
Donnée:entier
Filsgauche:^element
FilsDroit: ^element
Fin enregistrement
Arbre= ^element
Variables
…
Debut
….
Fin.
Cours développé par Dr. Jihène Tounsi
Les opérations élémentaires : la
création et la suppression


CréerArbreVide(): Arbre
CréerArbre (e:entier,FG:Arbre, FD:Arbre) : Arbre
À partir de deux sous Arbres
 La valeur à insérer à la racine
 Retourne un arbre avec e la racine et FG et FD deux
pointeurs sur les fils.


CréerFeuille(e:entier): Arbre


Permet de créer une Feuille de l’arbre
SupprimerArbre(a:Arbre)

Supprime l’arbre dont la racine est fournie en paramètre.
Cours développé par Dr. Jihène Tounsi
Les opérations élémentaires :
Vérification

ArbreVide(A: Arbre):Booléan
 Permet

de vérifier si l’arbre ou le sous arbre est vide.
EstFeuille(a:^élément):booléan
 Permet
de vérifier si un nœud de l’arbre est une feuille.
Cours développé par Dr. Jihène Tounsi
Les opérations élémentaires : Accès

Racine(a:Arbre):entier
 Permet

FilsGauche(a:Arbre):^element (équivalent à Arbre)
 Permet

de retourner la valeur stockée à la racine
de retourner le pointeur sur le Fils gauche
FilsDroit(a:Arbre):^element
 Permet
de retourner le pointeur sur le Fils droit
Exercice


Écrire un algorithme qui permet de créer l’arbre
binaire de l’exemple
Créer une fonction qui permet de rechercher un
élément dans un arbre
34
28
23
18
21
14
Cours développé par Dr. Jihène Tounsi
Cours développé par Dr. Jihène Tounsi
Recherche d’un élément
Algorithme_ExempleArbre;
Type
Element = enregistrement
Donnée:entier
Filsgauche:^element
FilsDroit: ^element
Fin enregistrement
Arbre= ^element
Fonction Recherche(e:entier, a:Arbre):booléen
//Arbre Vide
//élément recherché à la racine de l’arbre
//Recherche dans le fils gauche puis le fils droit
Fin Fonction.
Variables
…
Debut
….
Fin.
Cours développé par Dr. Jihène Tounsi
Recherche d’un élément
Fonction Recherche(e:entier, a:Arbre):booléen
Si ArbreVide(a) alors
Retourner Faux
Sinon
Si (Racine (a)=e) alors
Retourner Vrai
Sinon
Retourner (Recherche(e, FilsGauche(a)) ou Recherche(e,FilsDroit(a)) )a
Fin Si
Fin Si
Fin Fonction.

Fin du chapitre 5…
Téléchargement
Study collections