LOGO Responsable du cours Mlle Amina GHRAB : 1 ère année IAG Institut Supérieur de Gestion de Tunis
Objectifs Être capable de choisir la structure adéquate à chaque problème. Savoir manipuler les structures arborescentes; Pouvoir implémenter les structures de données arborescentes; Connaître les avantages et les inconvénients de chaque structure arborescente; Connaitre lutilité des structures de données arborescentes; Létudiant devra : 2
Références Michel Divay : Algorithmes et structures de données génériques; Abdelali Guerid, Pierre Breguet, Henri Röthlisberger : Algorithmes et structures de données avec C++ et Java; XU Philippe, VENANT Antoine: Arbres binaires de recherche; Cours Mme Nahla Ben Amor : Algorithmes et structures de données, 3
Plan 4 Les arbres binaires de recherche 2 Exercices 3 3 Définition et terminologie Algorithmes de parcours Définition Opérations sur les ABRs Structures de données arborescentes 1 Les AVLs
Définitionetterminologie(1) Définition et terminologie(1) 5 Une arborescence est une structure en forme d'arbre qui permet d'organiser les données en mémoire ou sur disque, de manière logique et hiérarchisée. Dictionnaire arborescent; … COU ART. CLE STE i TEAU VE. R... NT.... R Organisation dun répertoire;
Définition et terminologie(2) Père :prédécesseur direct dun nœud; Fils : successeur direct dun nœud; Feuille : un nœud sans fils; Degré dun nœud : le nombre de ces fils; Génération : les nœuds dun même niveau; Branche: un chemin qui commence par la racine et se termine par une feuille; Sous-arbre : un nœud accompagné de toute sa descendance; 6
Définition et terminologie(3) Taille : le nombre de nœud de larbre; Profondeur : le nombre de nœud de la branche la plus longue; Ordre dun arbre : le degré maximum parmi tous ses nœuds; Arbre binaire : un arbre dordre 2; Arbre binaire complet : chaque nœud autre quune feuille admet deux descendants et toutes les feuilles sont au même niveau; Arbre binaire dégénéré : tous les nœuds de cet arbre ont au plus un descendant. 7
Définition et terminologie(3) Illustration A E DB L F N G MK Taille:? Profondeur:? Ordre:? Taille:10 Profondeur:4 Ordre:2 8
Définition et terminologie(4) A E DB L C H F N G MK A est le père de B B est le fils de A C,B et D sont de la même génération et appartiennent au même niveau(niveau1) H,K,L,C,F,M et N sont des feuilles A,B,E,K est une branche 9
Parcours en largeur Parcours en profondeur Algorithmes de parcours 10
Algorithmes de parcours A E DB L C H F N G MK A,B,C,D,E,F G,H,K,L,M,N Largeur 11
Algorithmes de parcours A E DB L C H F N G MK A,B,E,H,K,L,C,D F,G,M,N Profondeur 12
Algorithmes de parcours Parcours en profondeur parcours_profond(AB:arbre) Debut Si nonVide(AB) alors Afficher Racine(AB) parcours_profond(SAG(AB)) parcours_profond(SAD(AB)) Fin si Fin 13
Algorithmes de parcours TAF: Ecrire lalgorithme du parcours en profondeur pour un arbre n-aire; Ecrire lalgorithme du parcours en largeur 14
Plan 15 Les arbres binaires de recherche 2 Exercices(Quiz) 3 3 Définition et terminologie Algorithmes de parcours Définition Operations sur les ABRs Structures de données arborescentes 1 Les AVLs
Définition Un arbre binaire de recherche (ABR) est un arbre binaire dans lequel chaque nœud possède une clé didentification, et tel que chaque nœud du sous-arbre gauche a une clé inférieure à celle du nœud considéré, et que chaque nœud du sous-arbre droit a une clé supérieure à celle-ci. Utiles pour ranger des valeurs ordonnées; permettent de rechercher et de trouver un nœud de façon rapide et simple. 16
Opèrations sur les ABRs: insertion Exemple:44,77,55,22,33 Insérer Insérer Insérer Insérer Insérer
0 fils 1 seul fils Opérations sur les ABRs: Suppression 2 fils 18
Opérations sur les ABRs: Suppression 1 er cas: le nœud a 0 fils On supprime le nœud et on remplace son adresse par NULL
Opérations sur les ABRs: Suppression 2éme cas: le nœud a un seul fils On supprime le nœud et on remplace son adresse dans son père par ladresse de son fils
Opérations sur les ABRs: Suppression 3eme cas: Le nœud a deux fils o On supprime N et on le remplace par lélément maximal de son sous arbre gauche puis on le supprime; o On supprime N et on le remplace par lélément minimal de son sous arbre droit puis on le supprime
Opérations sur les ABRs: Suppression Algorithme Delete(n:nœud) Debut n,q:nœud,racine:noeud;test,Supp:boolean; Si (n.compareto(ref-racine)==0; Supp=vrai;test=vrai; Fin si Tant que(racine<>null)&&(!test) Si (n.compareto(racine)<0) alors q=racine;racine=racine.fils-gauche; Sinon (si n.compareto(racine)>0) q=racine;racine=racine.fils-droit fin si; Sinon test=vrai; Fin si 22
Opérations sur les ABRs: Suppression Si test=vrai alors Si((racine.fils-droit<>null)&&(racine.fils-gauche<>null)) alors Z=chercherMin(racine.fils-droit) Racine=z; Z=supprimermin(racine.fils-droit); Fin si Fin tant que 23
Opérations sur les ABRs: Suppression TAF Terminer le traitement du premier et du deuxième cas de la suppression dans un arbre de recherche. 24
ABRs Très éfficaces pour la recherche, les insertions et les suppressions; 24
Les AVLs ABR Dégénéré !!!!!!! Complexité est en O(n) Il faut les équilibrer 25
Les AVLs 26 Un AVL est un arbre binaire de recherche tel que, pour tout nœud de larbre, les hauteurs des sous-arbres gauches et des sous-arbres droits diffèrent dau plus de 1 ; Remédier au problème de déséquilibre dans les arbres binaires de recherche; Ce sont des arbres de recherche équilibrés dont les opérations de recherche, d'insertion et de suppression ne sont pas coûteuses en terme de complexité.
Les AVLs BAL=hauteur(SAD)-hauteur(SAG) BAL =0 BAL=1 BAL=-1 Principe Nœud 28
AVLs
Questions 30