Les Arbres - Jihene Tounsi

Transcription

Les Arbres - Jihene Tounsi
Cours développé par Dr. Jihène Tounsi
Qu’est ce qu’un Arbre (1/2)
ALGORITHME ET
STRUCTURES DE DONNÉES II
LES ARBRES
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.
Dr. Jihène Tounsi
ISG de Sousse
Site web http://www.jihenetounsi.com
Email: [email protected]
A
B
G
D
C
E
F
Cours développé par Dr. Jihène Tounsi
Qu’est ce qu’un Arbre (2/2)
Les arbres Binaires
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
Fils
gauche
Fils droit
C
E
Un nœud ne peut donner naissance qu’au maximum
2 Nœuds
F
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
Cours développé par Dr. Jihène Tounsi
Structure de l’Arbre
Donnée
: l’élément à stocker.
Filsgauche: Un pointeur sur le fils gauche.
Filsdroit: Un pointeur sur le fils droit
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
Algorithme_ExempleArbre;
Type
Element = enregistrement
Donnée:entier
Filsgauche:^element
FilsDroit: ^element
Fin enregistrement
Arbre= ^element
Variables
…
Debut
….
Fin.
Un enregistrement pour la cellule ou l’élément de
l’Arbre
Un Pointeur sur la racine de l’arbre
Cours développé par Dr. Jihène Tounsi
Les opérations élémentaires : la
création et la suppression
CréerArbreVide
CréerArbre (e:entier,FG:Arbre, FD:Arbre)
À
partir de deux sous Arbres
La valeur à insérer à la racine
CréerFeuille(e:entier)
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
Permet
Cours développé par Dr. Jihène Tounsi
Les opérations élémentaires : Accès
de vérifier si l’arbre ou le sous arbre est vide.
Permet
EstFeuille(a:^élément)
Permet
Racine(a:Arbre)
FilsGauche(a:Arbre)
Permet
de vérifier si un nœud de l’arbre est une feuille.
de retourner la valeur stockée à la racine
de retourner le pointeur sur le Fils gauche
FilsDroit(a:Arbre)
Permet
de retourner le pointeur sur le Fils gauche
Cours développé par Dr. Jihène Tounsi
Exercice
Recherche d’un élément
É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
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
Si Recherche(e, FilsGauche(a)) ou Recherche(e,FilsDroit(a)) alors
Retourner Vrai
Sinon
Retourner Faux
Fin si
Fin Si
Fin Si
Fin Fonction.
Fin du chapitre 5…