La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

LOGO Responsable du cours Mlle Amina GHRAB : 1 ère année IAG 2009 - 2010 Institut Supérieur de Gestion de Tunis.

Présentations similaires


Présentation au sujet: "LOGO Responsable du cours Mlle Amina GHRAB : 1 ère année IAG 2009 - 2010 Institut Supérieur de Gestion de Tunis."— Transcription de la présentation:

1 LOGO Responsable du cours Mlle Amina GHRAB : amina.ghrab@live.fr 1 ère année IAG 2009 - 2010 Institut Supérieur de Gestion de Tunis

2 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

3 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, http://isgprog2.ifrance.com/ 3

4 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

5 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;

6 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

7 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

8 Définition et terminologie(3) Illustration A E DB L F N G MK Taille:? Profondeur:? Ordre:? Taille:10 Profondeur:4 Ordre:2 8

9 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

10 Parcours en largeur Parcours en profondeur Algorithmes de parcours 10

11 Algorithmes de parcours A E DB L C H F N G MK 1 2 4 3 65 8 7 1110 912 A,B,C,D,E,F G,H,K,L,M,N Largeur 11

12 Algorithmes de parcours A E DB L C H F N G MK 1 2 3 45 6 7 8 910 1112 A,B,E,H,K,L,C,D F,G,M,N Profondeur 12

13 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

14 Algorithmes de parcours TAF: Ecrire lalgorithme du parcours en profondeur pour un arbre n-aire; Ecrire lalgorithme du parcours en largeur 14

15 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

16 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

17 Opèrations sur les ABRs: insertion Exemple:44,77,55,22,33 Insérer 44 44 Insérer 77 55 Insérer 55 44 Insérer 22 77 Insérer 33 22 44 77 55 44 77 22 55 44 77 33 17

18 0 fils 1 seul fils Opérations sur les ABRs: Suppression 2 fils 18

19 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 22 55 44 77 33 22 55 44 77 19

20 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 22 55 44 77 33 55 44 77 20

21 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 22 55 44 77 3312 14 7 55 44 77 3312 7 21

22 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

23 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

24 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

25 ABRs Très éfficaces pour la recherche, les insertions et les suppressions; 24

26 Les AVLs ABR Dégénéré !!!!!!! Complexité est en O(n) Il faut les équilibrer 25

27 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é.

28 Les AVLs BAL=hauteur(SAD)-hauteur(SAG) BAL =0 BAL=1 BAL=-1 Principe Nœud 28

29 AVLs 22 55 44 77 33 56 12 44 1 0 00 0 0 22 55 44 77 33 56 12 44 -2 20 0 0 14 13 0 1 29

30 Questions 30


Télécharger ppt "LOGO Responsable du cours Mlle Amina GHRAB : 1 ère année IAG 2009 - 2010 Institut Supérieur de Gestion de Tunis."

Présentations similaires


Annonces Google