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…