Arbres Rouge noir Démo : INF3105 Structures de données et algorithmes

Slides:



Advertisements
Présentations similaires
Mais vous comprenez qu’il s’agit d’une « tromperie ».
Advertisements

Le moteur
Structures de données avancées : Principales structures de données
Chapitre 3 Les arbres binaires
Mon carnet De comportement
Portée des variables VBA & Excel
Classe : …………… Nom : …………………………………… Date : ………………..
1 1 Momentum. 2 2 Tout objet en mouvement continuera son mouvement tant que rien nentrave sa progression.
Les Prepositions.
GEF 243B Programmation informatique appliquée Listes chaînées II §15.1 – 15.2.
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
La diapo suivante pour faire des algorithmes (colorier les ampoules …à varier pour éviter le « copiage ») et dénombrer (Entoure dans la bande numérique.
LES TRIANGLES 1. Définitions 2. Constructions 3. Propriétés.
Cours 8 Arbres équilibrés
Les verbes auxiliaires Avoir ou être ?? Choisissez! Cest un verbe Dr Mrs Vandertrampp? Cest un verbe réfléchi?
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
Les algorithmes: complexité et notation asymptotique
IFT-2000: Structures de Données
Arbre Rouge Noir.
1 Les pointeurs et quelques rappels sur certains éléments du langage C.
B-Arbre +.
La Saint-Valentin Par Matt Maxwell.
Les fichiers indexés (Les B-arbres)
LES ARBRES IUP 2 Génie Informatique
Structures de données IFT-2000
1. 2 PLAN DE LA PRÉSENTATION - SECTION 1 : Code HTML - SECTION 2.1. : CSS (Méthode 1) - SECTION 2.2. : CSS (Méthode 2) - SECTION 3 : JavaScript - SECTION.
La Distribution des Données
Gilbert TOUT NEST QUE CALCUL Vous vous êtes certainement déjà demandé ce que voulait dire « se donner à 100% » ?
Notre calendrier français MARS 2014
Les arbres et tas binomiaux
Quelle heure est-il ??. THE TIME: OCLOCK IL EST HEURE IL EST + + HEURES etc.
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
C'est pour bientôt.....
Les Nombres 0 – 100 en français.
Veuillez trouver ci-joint
Les Nombres! de 0 à 20.
SUJET D’ENTRAINEMENT n°4
Structures de données IFT-2000
Structures de données IFT Abder Alikacem Semaine 10 Les arbres SPLAY Département dinformatique et de génie logiciel Édition septembre
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.
Question 1-b (10 pts) 55, 5, 40, 80, 65, 30, 60, 20, 15, 85, Ajout de 55 Ajout de Ajout de 40.
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
Traitement de différentes préoccupations Le 28 octobre et 4 novembre 2010.
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
1 Modèle pédagogique d’un système d’apprentissage (SA)
* Source : Étude sur la consommation de la Commission européenne, indicateur de GfK Anticipations.
Conférence du groupe X- Environnement, 24 avril 2013 L’impact écologique des infrastructures numériques Cédric Gossart Institut Mines-Télécom Télécom Ecole.
chapitre -1- OPERATIONS [B] REGLES DE PRIORITE (f n°103) lundi 15 septembre 2014  rappels de 6°  du nouveau en 5°  applications  exercices  Page.
Certains droits réservés pour plus d’infos, cliquer sur l’icône.
10 paires -. 9 séries de 3 étuis ( n° 1 à 27 ) 9 positions à jouer 5 tables Réalisé par M..Chardon.
CALENDRIER-PLAYBOY 2020.
USAM BRIDGE H O W E L L -CLASSIQUE
Structures de données avancées : Arbres Red-Black
6 Nombres et Heures 20 vingt 30 trente 40 quarante.
9 paires séries de 3 étuis ( n° 1 à 27 )
Quel est l’intérêt d’utiliser le diagramme de Gantt dans la démarche de projet A partir d’un exemple concret, nous allons pouvoir exploiter plusieurs parties.
Relevez le numéro de votre logo préféré et adressez-le à : En cas d’hésitation, vous pouvez choisir jusqu’à 3 logos. Seront pris.
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Structures de données avancées : Arbres ‘Left Leaning Red-Black’
Structures de données avancées : Arbres AA
Structures de données avancées : Variantes des B arbres
Structures de données IFT-2000
4/25/2017 4:30 PM Arbres (2,4) CSI2510 CSI2510.
. Le B-Arbre.
Transcription de la présentation:

Arbres Rouge noir Démo : INF3105 Structures de données et algorithmes Groupe : 30 Monitrice : Kerlyne Fostine Courriel : fostinekerlyne@yahoo.fr

Arbres rouge noir - Définition Arbre binaire de recherche dans lequel chaque nœud a un attribut supplémentaire : sa couleur, qui est soit rouge soit noire. L’arbre a les propriétés suivantes: Chaque noeud est soit rouge soit noir La racine est noire Si un noeud est rouge, tous ses enfants doivent être noirs À partir de n’importe quel noeud, tous les chemins de la racine jusqu’à un pointeur NULL doivent avoir le même nombre de noeuds noirs

Arbres rouge noir - Exemple 30 70 15 10 20 60 85 5 50 65 80 90 40 55

Arbres rouge noir - exemple 30 70 15 10 20 60 85 5 50 65 90 80 40 55

Arbres rouge noir – exemple

Arbres rouge noir – Contre exemple 30 70 15 10 60 85 2 noeuds noirs 90 5 50 65 80 83 95 40 55 4 noeuds noirs

Arbre rouge noir - Structure Chaque nœud d’un arbre rouge noir doit avoir : Un pointeur parent Un pointeur gauche Un pointeur droit Un champ couleur Un champ element Un champ clef Un nœud peut être : Une sentinelle nul qui sert à représenter les feuilles de l’arbre (Pas de valeur, pas d’élément, de couleur noire, clef de valeur minimum, champs parent, gauche, droite pointent a elle-même) Une sentinelle racine dont les champs parent et droite pointent a la sentinelle nul, sans element, de couleur noire et avec une clef de valeur maximum, et dont le champ de gauche indique le vrai nœud racine.

Arbre rouge noir – Insertion Un noeud inséré est toujours une feuille On peut pas le colorier en noir, puisque cela violerait la condition 4 On colore le noeud en rouge Si le père est noir, pas de problème Si le père est rouge, on viole la condition 3. Dans ce cas, on ajuste l’arbre, par le biais de changements de couleurs et de rotations

Premier cas : Le frère du noeud parent est noir (on utilise la convention qu’un noeud NULL est noir) Noeud inséré G P S X G P D E B S C A C X D E B A Rotation simple

Deuxième cas: le frère du noeud parent est noir (on utilise la convention qu’un noeud NULL est noir) G X S P G P D E B S X A C D E B C Noeud inséré Rotation double

Exemple – Rotation simple 30 70 15 10 (NOIR) 20 60 85 5 3 65 80 90 50 (NOIR) 40 55 Rotation simple Noeud inséré

Exemple : Rotation simple (suite) 30 70 15 20 60 85 5 3 10 (NOIR) 90 50 65 80 (NOIR) 40 55

Exemple – Rotation simple (Suite) 30 70 15 20 60 85 5 3 10 (NOIR) 90 50 65 80 (NOIR) 40 55

Exemple – Rotation simple (suite) 30 70 15 20 60 85 5 3 10 (NOIR) 90 50 65 80 (NOIR) 40 55

Exemple - rotation simple (suite) 30 70 15 5 3 20 60 85 10 (NOIR) 90 50 65 80 (NOIR) 40 55

Exemple – Rotation simple (suite) 30 70 15 20 5 60 85 10 90 3 50 65 80 (NOIR) (NOIR) 40 55

Exemple - Double rotation 30 70 15 10 (NOIR) 20 60 85 65 90 5 50 80 (NOIR) 8 40 55 Noeud inséré

Exemple - Double rotation (Suite) 30 70 15 20 60 85 10 (NOIR) 90 5 50 65 80 (NOIR) 8 40 55

Exemple – Double rotation (Suite) 30 70 15 8 20 60 85 10 90 5 50 65 80 (NOIR) (NOIR) 40 55

Algorithme d’insertion Insertion(z) Y = racine X = racine.gauche Tant que X != nul Y = X if X.clef > Z.clef X = X.gauche else X = X.droite Z.Parent = Y If Y = racine OU Y.clef > z.clef Y.gauche = Z Else Y.droite = Z Z.Gauche = nul Z.Droite = nul z.Couleur = Rouge ajusterInsertion(Z)

Algorithme d’insertion (suite) ajusterInsertion(Z) Tant que couleur Z.parent = Rouge if Z.parent = Z.parent.parent.droite Y = Z.parent.parent.gauche if Couleur Y = Rouge Couleur Z.parent = noir Couleur Y = noir Couleur Z.parent.parent = Rouge Z = Z.parent.parent else if Z = X.parent.gauche Z = Z.parent Rotation droite z Couleur Z.parent = Noir Rotation fauche Z.parent.parent double rotation droite gauche Couleur Racine.gauche = Noir

Algorithme suppression Suppression(Z) Valeur = Z.element If Z.gauche = nul OU Z.droite = nul Y = Z Else Y = Successeur Z If Y.gauche = nul X = Y.droite X = Y.gauche X.parent = Y.parent If Racine = X.parent Racine.gauche = X If Y = Y.parent.gauche Y.parent.gauche = X Y.parent.droite = X

Algorithme suppression (Suite) If Y != Z Y.gauche = Z.gauche Y.droite = X.droite Y.parent = X.parent Z.gauche.parent = Z.droite.parent = Y if Z = Z.parent.gauche Z.parent.gauche = Y else Z.parent.droite = Y If couleur Y = Noir Couleur Y = Couleur Z AjusterSuppression(X) couleur Y = Couleur Z Liberer Z Else Liberer Y Retourner Valeur

Algorithme suppression (Suite) AjusterSuppression(Z) Tant que couleur Z = Noir ET Z != racine if Z = Z.parent.droite W = Z.parent.gauche If Couleur W = Rouge Couleur W = Noir Couleur Z.parent = Rouge Rotation droite Z.parent If couleur W.droite ET W.gauche = Noir Couleur W = Rouge Z = Z.parent Else if Couleur W.gauche = Noir Couleur W.droite = Noir Rotation gauche W Couleur W = Couleur Z.parent Couleur Z.parent = Noir Couleur W.gauche = Noir Z = racine Rotation double droite gauche Couleur z = noir

Références Structures de données avancées avec la STL http://www.cours.polymtl.ca/inf1101/Hiver2005/Note/Arbres