Structures de données avancées : Principales structures de données

Slides:



Advertisements
Présentations similaires
Structures de données avancées : MLH (Multidimensional linear hashing)
Advertisements

Structures de données avancées : Principales structures de fichiers
Structures de données avancées : B arbres
Structures de données avancées : Principales structures de données
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure dInformatique (ESI)
Structures de données avancées : MBT ( Multidimensional B-trees )
Structures de données avancées : MTH ( Multidimensional trie hashing )
Structures de données avancées : Introduction
Chap. 4 Recherche en Table
Chapitre 3 Les arbres binaires
D. E ZEGOUR Institut National d ’Informatique
Distributed Compact Trie Hashing Proposé par D.E ZEGOUR.
Traitement Co-Séquentiel: Appariment et Fusion de Plusieurs Listes
Cours 8 Arbres équilibrés
Structures de données linéaires
LOGO Responsable du cours Mlle Amina GHRAB : 1 ère année IAG Institut Supérieur de Gestion de Tunis.
Les structures de données arborescentes
Arbre binaire de recherche
II. Chaînage, SDD séquentielles
Arbre Rouge Noir.
Gestion de Fichiers Arbres B.
Sections sélectionnées du Chapitre 11
Les fichiers indexés (Les B-arbres)
LA STRUCTURE D'ARBRE-B Institut National des Sciences Appliquées – Rouen Département Architecture des Systèmes d’Information.
LES ARBRES IUP 2 Génie Informatique
Arbres Rouge noir Démo : INF3105 Structures de données et algorithmes
Structures de données IFT-2000 Abder Alikacem Standard Template library Édition Septembre 2009 Département dinformatique et de génie logiciel.
Structures de données IFT-2000
Structures de données IFT-10541
8 Organisations unidimentionnelles : indexage et hachage
Présentation Structures de Données et TDA
IFT-2000: Structures de données Piles et files Dominic Genest, 2009.
Structures de données IFT-2000
Structures de données IFT-2000 Abder Alikacem Semaine 11 Gestion des arbres binaires de tri et de recherche. Les arbres cousus. Les arbres n-aires Département.
1 Organisations unidimentionnelles : indexage et hachage  Sélection basée sur une clé d'accès  recherche associative  Ex: Chercher le plant dont le.
Structures de données IFT-2000
Heuristiques C. Recherche de la meilleure branche . Branch And Bound
Structures de données avancées : Hachage dynamique
Structures de données avancées : Arbres Red-Black
Structures de données avancées : Introduction
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Arbres binaires et tables de hachage
II. Chaînage, SDD séquentielles
Structures de données avancées : Fichiers uni-dimensionnels Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Structures de données avancées : MBT ( Multidimensional B-trees )
Structures de données avancées : Concepts du Multidimensionnel D. E ZEGOUR Institut National d ’Informatique.
Structures de données avancées : Arbres AA
Structures de données avancées : Fichiers multidimensionnels Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI) zegour.esi.dz
Structures de données avancées : LH (Hachage linéaire) D. E ZEGOUR Institut National d ’Informatique.
Algorithmique et Conception Objet
B.Shishedjiev - Modèle relationnel
Structures de données avancées : B arbres
Structures de données avancées : Variantes des B arbres
1 UMLV  FICHIERS Mémoire de masse découpée en blocs Fichier :liste chaînée de blocs, ou arbre de blocs (répertoires - fichiers)‏ Bloc d’éléments Bloc.
Structures de données avancées TH ( Hachage digital ) D. E ZEGOUR Institut National d ’Informatique.
Structures de données avancées : Principales structures de fichiers
Structures de données avancées : Arbres B+ avec expansion partielle D. E ZEGOUR Institut National d ’Informatique.
Structures de données avancées : MLH (Multidimensional linear hashing) D. E ZEGOUR Institut National d ’Informatique.
Structures de données avancées : Introduction D. E ZEGOUR Institut National d ’Informatique.
Structures de données avancées : Hachage dynamique
Structures de données avancées : MTH ( Multidimensional trie hashing ) D. E ZEGOUR Institut National d ’Informatique.
Structures de données IFT-2000
Structures de données IFT-2000 Abder Alikacem Semaine 10 Les algorithmes de recherche Les structures arborescentes Département d’informatique et de génie.
 Chaînage et LSC : motivation et principe Manipuler la LSC : exemples Variantes : LDC, liste circulaire, … Etude de cas : réalisation d’un buffer clavier.
Les monceaux (Heap) Monceaux Propriétés des Monceaux
4/25/2017 4:30 PM Arbres (2,4) CSI2510 CSI2510.
CSI25101 Tri Plus efficace. CSI25102 Tri récursif Le tri récursif divise les données de grande taille en deux presque moitiés et est appelé récursivement.
Raison d'être de la structure de fichiers : Les premiers travaux : Début des années 1960 : En 1963 : Près de 10 ans plus tard... (à peu près 1973) : Durant.
Page: 1-Ali Walid Gestion de fichiers. B-Arbre +.
. Le B-Arbre.
Transcription de la présentation:

Structures de données avancées : Principales structures de données ZEGOUR Institut National d ’Informatique

Les principales structures de données en RAM Les arbres Les arbres binaires - Structure de données hiérarchique, généralement dynamique. - Liste chaînée non linéaire de maillons - Au maximum 2 fils pour chaque nœud - Un arbre est défini par son nœud racine. Modèle - Allocation/libération: Créernoeud(x),Libérer(p) - Accès : Info(p), Fg(p), Fd(p) - Mise à jour : Aff-info(p, x), Aff-fg(p, x), Aff-fd(p, x)

Les principales structures de données en RAM Les arbres Parcours des arbres binaires Préordre : n T1 T2 Inordre : T1 n T2 Postordre : T1 T2 n

Les principales structures de données en RAM Les arbres Exemple Préordre : a, h, c, i, j, e, f, g, h. Inordre : i, c, j, h, e, a, g, f, h Postordre: i, j, c, e, h, g, h, f, a.

Les principales structures de données en RAM Arbre de recherche binaire Définition Éléments ordonnés par une relation d'ordre (Éléments à gauche de x) < x ; (Éléments à droite de x) > x L'inordre donne la liste ordonnée de tous les éléments. Opérations Recherche : A chaque étape, soit l'élément recherché est trouvé, soit un sous arbre est éliminé. (recherche dichotomique) Insertion: L'élément inséré est toujours une feuille Suppression : plus délicate.

Les principales structures de données en RAM n (pointeur de l'élément à supprimer) fg fd Action a) ^ ^ Remplacer n par ^ b) ^ #^ Remplacer n par Fd(n) c) #^ ^ Remplacer n par Fg(n) d) #^ #^ 1. Rechercher le plus petit descendant du sous- arbre droit, soit p. 2. Remplacer Info(n) par Info(p) 3. Remplacer p par Fd(p)

Les principales structures de données en RAM Les arbres m-aires . Généralisation de l'arbre binaire . Chaque nœud peut avoir entre 0 et n fils Modèle - Nbr(p) nombre de sous arbres du nœud p (degré ) - Fils (p,1), ..... ,Fils(p, nbr(p)) - Info(p), Aff_info(p, Info) - Aff_nbr(p, n) - Aff_fils(p, i, j) - Allouer(p), Libérer(p)

r d b c a f g e i h j k Les arbres m-aires Parcours des arbres m-aires Préordre n T1 T2 .. . Tp ( r a b e f j k g c d h i ) Inordre T1 n T2 .…Tp ( a r e b j f k g c h d i ) Postordre T1 T2 ... Tp n ( a e j k f g b c h i d r ) r d b c a f g e i h j k

Les principales structures de données en RAM Les arbres m-aires Transformation arbre m-aire ---> arbre binaire Première étape : Lier les frères dans une liste linéaire chaînée Deuxième étape Rotation de 45 ° dans le sens des aiguilles d’une montre

Les principales structures de données en RAM

Les principales structures de données en RAM

Les principales structures de données en RAM

Les principales structures de données en RAM Arbre de recherche m-aire (ARM) Généralisation de l'ARB Structure d'un nœud : (s1, k1, s2, .......kn-1,sn) avec k1 < k2 ....< kn-1 (Éléments dans s1 ) <= k1 (Éléments dans sj) > kj-1 et <= kj (j=2,3, ...n-1) (Éléments dans sn) > kn-1.

Les principales structures de données en RAM Exemple d’arm d’ordre 4

Les principales structures de données en RAM Arbre de recherche m-aire (ARM) Opérations Recherche : Comme une généralisation de l'arbre de recherche Binaire : O( logOrdre(n) ) Insertion : Rechercher la clé. Si clé non trouvée(on est sur une feuille, soit p) et p non complet ( c'est à dire Nbr(p) < n) on l'insère. Si clé non trouvée et nœud p complet, on fait les opérations suivantes : - allocation d'un nouveau nœud - insérer la donnée dans ce nœud - placer le nœud comme fils du nœud surchargé

Les principales structures de données en RAM Arbre de recherche m-aire (ARM) Suppression logique : Laisser la clé au niveau du nœud et le marquer Le nœud reste utilisé pour l'algorithme de recherche Physique ( plus chère) Technique similaire à celle des arbres de recherche binaire :

Les principales structures de données en RAM Arbre de recherche m-aire (ARM) Suppression physique 1. Si clé à supprimer a un sous arbre gauche ou droit vide, alors simplement supprimer la clé et tasser le nœud. Si c'est la seule clé dans le nœud, libérer le nœud. 2. Si clé à supprimer a des sous arbres gauche et droit tous les deux non vides, alors trouver la clé successeur (qui doit avoir un sous arbre gauche vide). Remplacer la clé à supprimer par ce successeur et tasser le nœud qui contenait ce successeur. Si le successeur est la seule clé dans le nœud, libérer le nœud.

Les principales structures de données en RAM Représentation des arbres binaires Statique : représentation standard ( représentation explicite des fils ) Statique : représentation séquentielle ( représentation implicite des fils) Exemple : le nœud à la position P est le père implicite des nœuds aux position 2P et 2P + 1 Dynamique : Nœud = maillon avec des pointeurs

Les principales structures de données en RAM Statique standard

Les principales structures de données en RAM Statique séquentielle

Les principales structures de données en RAM Représentation des arbres m-aires Statique : comme les arbres binaires Une autre possibilité : . Un tableau des nœuds contenant les listes des fils.

Les principales structures de données en RAM Arbres AVL (Adelson, Velski, Landis) Profondeur = niveau maximal des feuilles. Un arbre binaire équilibré (ou AVL-tree) est un arbre dans lequel les profondeurs des deux sous arbres de chaque nœud ne diffèrent pas plus d'un. A chaque nœud est associé un facteur d'équilibrage

Les principales structures de données en RAM Arbres AVL (Adelson, Velski, Landis) L'arbre devient non équilibré quand le nouveau nœud inséré : - est un descendant gauche d'un nœud qui avait un facteur d'équilibrage égal à 1. - est un descendant droit d'un nœud qui avait un facteur d'équilibrage égal à -1.

Les principales structures de données en RAM Arbres AVL (Adelson, Velski, Landis) Transformer pour maintenir l'arbre binaire équilibré avec les deux conditions : (i) - l'inordre soit préservé. (ii) - l'arbre transformé soit équilibré.

Les principales structures de données en RAM Soit un sous arbre de racine le plus jeune antécédent qui devient non équilibré suite à une insertion.

Les principales structures de données en RAM Après transformation

Les principales structures de données en RAM Arbres AVL (Adelson, Velski, Landis) A : plus jeune antécédent devenu non équilibré. Dans a), le nouveau nœud est inséré dans le sous arbre gauche de B. Donc f(B) devient 1 et f(A) devient 2. Dans b), le nouveau nœud est inséré dans le sous arbre droit de B. f(B) devient -1 et f(A) devient 2. Soit C le fils droit de B. Trois cas: - C est le nouveau nœud créé ( cas n=0 ) - Le nœud créé est dans le sous gauche de C (cas de la figure b) ) - le nœud créé est dans le sous arbre droit de C.

Les principales structures de données en RAM Arbres AVL (Adelson, Velski, Landis) Algorithmes de maintien de l'arbre : insertion Première partie : insérer la clé dans l'arbre sans tenir compte du facteur d'équilibrage. garder la trace du plus jeune antécédent, soit Y qui devient non équilibré. Deuxième partie : faire la transformation à partir de Y.

Les principales structures de données en RAM Arbres AVL (Adelson, Velski, Landis) Analyse théorique : Profondeur maximale = 1.44*Log2n. ==> Recherche n'exige jamais plus de 44% de plus de comparaisons que pour un arbre binaire complet. En moyenne une rotation est faite pour 46.5% des insertions.

Les principales structures de données en RAM Arbres AVL (Adelson, Velski, Landis) Exemples :Insertions dans un arbre AVL de la séquence A, B, X, L, M, C, D, E, H, R, S, F

Les principales structures de données en RAM

Les principales structures de données en RAM

Les principales structures de données en RAM

Les principales structures de données en RAM

Les principales structures de données en RAM

Les principales structures de données en RAM

Les principales structures de données en RAM

Les principales structures de données en RAM Rangement des données dans un tableau Rangement séquentielle ( O(n) ) Rangement ordonné ( O(Log(n) ) Rangement aléatoire ou Hachage (Comme une 3ième possibilité avec O(1) Technique : Transformer la donnée K par une fonction f. f(K) est alors l'emplacement où sera rangée la donnée K. Impossible de trouver une fonction bijective (paradoxe de l'anniversaire) ==> Existence de techniques de résolution des collisions.

Les principales structures de données en RAM Pour utiliser une technique de hachage Définir la fonction de hachage une méthode dite méthode de résolution des collision (MRC) Définitions : synonymes : données qui ont même adresse par f adresse primaire : f(donnée) débordement : donnée non rangée dans son adresse primaire adresse secondaire

Les principales structures de données en RAM Hachage Fonction de hachage fonction f telle que 0 <= f(K) < M qui réduit au maximum le nombre de collisions. Quelques fonctions : Fonction de division h(K)= K mod M ( M premier ) Méthode dite du milieu du carré "middle square" Élever au carré et prendre les chiffres du milieu

Les principales structures de données en RAM Essai linéaire Utilisation de la séquence cyclique h(k)-1, ......, 0, M-1, M-2, ......h(k)+1 Remarque : table est remplie quand N = M - 1.

Les principales structures de données en RAM Essai linéaire : Algorithme de Recherche/Insertion L1. [Hacher] i := h(K) { 0 <= i < M } L2. [Comparer] Si Donnée(K) = K, l'algorithme se termine avec succès. Autrement Si T(i) est vide aller à L4. L3. [Avancer au prochain] i := i - 1 Si i < 0 : i := i + M Aller à L2. L4. [Insérer] {recherche est sans succès} Si N = M - 1 débordement Sinon N := N + 1; Marquer T(i) occupé; Donnée(i) := K

Les principales structures de données en RAM Hachage Les autres méthodes Double hachage (D) : séquence cyclique avec un pas déterminée par une autre fonction de hachage Chaînage interne (I) : chaînage à l'intérieur de la table Chaînage séparé (S) : Chaînage à l'extérieur de la table 2 classifications : Les méthodes ouvertes : L, D, I; Les méthodes fermées : S Les méthodes avec chaînage : I, S; Les méthodes sans chaînage : L, D

Les principales structures de données en RAM

Les principales structures de données en RAM Hachage Comparaison S > C > D > L Synthèse : Pas d’ordre Insertions contrôlées Fichiers statiques