[PDF] Les arbres-B Un arbre-B d'ordre


Les arbres-B


Previous PDF Next PDF



3I009 1 Indexation : arbres B+ et tables de hachage (3 pts)

10 juin 2016 Dans cet exercice on considère des arbres B+ d'ordre 2 (les noeuds ... - A → B : b1=B



Un exemple de structure de données hiérarchique : larbre B+

l'arbre B+. Maude Manouvrier. Page 2. Arbre B. Arbre B (R. Bayer et C. McCreight 1972)





Conception dalgorithmes Principes et 150 exercices non corrigés Conception dalgorithmes Principes et 150 exercices non corrigés

arbre (b) est un second arbre préfixe. Le coût L(A) de l'arbre préfixe A se définit par la longueur de la chaîne de bits résultant du codage du texte t par ...



Les possessifs exercices et corrigé

7. Complétez les phrases suivantes avec les pronoms possessifs qui conviennent. 1. Cet arbre est à vos voisins ? Oui c'est .



Les démonstratifs exercices et corrigé

Exercices et corrigé. Les adjectifs. 1. Complétez avec ce cette ou ces. 1 Cet arbre est exotique. 2. Ces hélices (f) tournent vite. Cette hélice ...



Langage C : énoncé et corrigé des exercices IUP GéniE

par tree . Exercice 48 Ecrire une f onction A r b re con s truire ( c ha r * s E x pre ss ion int iI ndice D e b ut



Module 7 - Arbres de décisions Exercices - Corrigé

Exercices - Corrigé. Exercice 2. L'entropie peut être calculée selon plot ( arbre uniform=TRUE



Parcours dun arbre binaire

ordre infixe : ch



Les arbres-B

L'arbre-B (o`u B-Tree en anglais) est une SDD utilisée dans les do- maines des : syst`emes de gestion de fichiers : ReiserFS (version modifiée.



Aucun titre de diapositive

Arbre B. Arbre B (R. Bayer et C. McCreight 1972)



EXERCICES corrigés de PROBABILITES

Exercice n°1: Détermine les probabilités p(A) puis p(B) et p(C). 2. Représente l'expérience par un arbre pondéré ( on fait figurer sur chaque branche la.



Exercices corrigés Initiation aux bases de données

Correction de l'exercice 2. A ne peut pas être clé de R car la valeur a1 de A se répètent dans la relation R. De même pour. B (b1) et C (c2).



Terminale S - Probabilités Exercices corrigés

F. Laroche. Probabilités exercices corrigés. Correction. 1.a. Arbre pondéré : Evénement A : chemin. Evénement B : chemin. Evénement C : chemin. B. B. B.



10 EXERCICES DE 60 PHRASES CHACUN –avec corrigé. 600

Exercices préparatoires au TECFÉE. CORRIGÉ. Partie 1. PARTIE A. 1. L'orthographe grammaticale et la morphologie. 1. b) Une immense banderole bleu lavande 



Langage C : énoncé et corrigé des exercices IUP GéniE

par tree . Exercice 48 Ecrire une f onction A r b re con s truire ( c ha r * s E x pre ss ion int 



Les possessifs exercices et corrigé

7. Complétez les phrases suivantes avec les pronoms possessifs qui conviennent. 1. Cet arbre est à vos voisins ? Oui c'est .



PROBABILITES – EXERCICES CORRIGES

Exercice n°1. B l'événement : "La carte choisie est rouge (cœur ou carreau)". ... L'arbre ci-contre indique la répartition selon le niveau et la.



Systèmes de Gestion de Bases de Données – 3I009 1 Indexation

Dans cet exercice on considère des arbres B+ d'ordre 2 (les noeuds et les CORRIGÉ. UPMC. Réponse : Solution: Insertion de 28 et 31 dans F3 : F3 (27



Les B-arbres

Un B-arbre est un arbre de la recherche avec une rami?cation importante et une hauteur plutôt faible En pratique un noeud de notre arbre est une page de notre disque externe



Les B-arbres

Arbre B+ d’ordre m Tout nœud d’index a au maximum m nœuds fils - un nœud possède au minimum [m/2] fils - la racine possède au minimum 2 fils - tout nœud d’index contient k fils et (k-1) clés L’arbre est équilibré (balanced tree) -t ous les nœuds feuilles sont au même niveau - la hiérarchie de l'arbre grossit par la racine :



Searches related to b arbre exercices corrigés PDF

1 a Constmire un arbre de dénombrement de toutes les combinaisons possibles de 3 boules b Combien de combinaisons y a-t-il ? 2 A l'aide de l'arbre de dénombrement calculer la probabilité des événements suivants A : On a 2 boules rouges C : On n'a pas de boule bleue EXERCICE 4A 4 B : On a une boule de chaque couleur

Comment calculer la complexité d’un arbre ?

Hypothèses pour le calcul de la complexité:—La racine du B-arbre se trouve toujours en mémoire principal : on n’a pas de LIRE-DISQUE; ce-pendant, il faudra effectuer un ÉCRITURE-DISQUElors de la modi?cation de la racine.—Tout noeud passé en paramètre devra subir un LIRE-DISQUE. Théorème. Soit T un B-arbre à n élément de degré minimal t2.

Quelle est la hauteur d’un arbre ?

Algorithmes et structures de donn´ees : TD 1 Corrig´e D´essiner cet arbre. Quelle est la hauteur de l’arbre ? La hauteur de l’arbre est 3. 3. Est-ce que cet arbre est un arbre entier, un arbre parfait (=complet), et/ou un arbred´eg´en´er´e ? Cet arbre est entier car chaque noued a zero ou deux ?ls.

Comment savoir si un arbre est équilibré?

Arbre B+ d’ordre m Tout nœud d’index a au maximum mnœuds fils - un nœud possède au minimum[m/2] fils - la racine possède au minimum 2 fils - tout nœud d’index contient k fils et (k-1) clés L’arbre est équilibré (balanced tree)

Comment créer un arbre binaire de recherche ?

Etablir la structure de donn´eesptnoeud ?pour cet arbre binaire de recherche contenantune cl´e (integer) et deux pointeurs, un pour le sous-arbre gauche, et un pour le sous-arbredroite. 2. Ecrire une fonctionfunction max(noeud : mum de l’abre de recherche. 3. Ecrire une fonctionfunction min(noeud : mum de l’abre de recherche.

Les arbres-B

G´eraldine Del Mondo, Nicolas Delestre

Fond´e sur le cours de M. Michel Mainguenaud - Dpt ASI arbre-B - v1.61 / 31

Plan...

1D´eifinition

2Recherche dans un Arbre-B

3Insertion dans un Arbre-B

4Suppression dans un Arbre-B

arbre-B - v1.62 / 31

D´eifinition

Contexte

L'arbre-B (o`uB-Treeen anglais) est une SDD utilis´ee dans les do- maines des :syst`emes de gestion de ifichiers : ReiserFS (version modiifi´ee des arbres-B) ou Btrfs (B-Tree ifile system)bases de donn´ees : gestion des index L'arbre-B reprend le concept d'ABR ´equilibr´e mais en stockant dans un noeudkvaleurs (nomm´ees cl´es dans le contexte des arbres-B) et en r´ef´eren¸cantk+ 1 sous arbres :≪ minimise la taille de l'arbre et r´eduit le nombre d'op´erations d'´equilibrage ≫(Wikip´edia)utile pour un stockage sur une unit´e de masse arbre-B - v1.63 / 31

D´eifinition

Arbre-B

D´eifinitionArbre-B

longueur `a 1 pr`es3Un noeud est : •Soit terminal (feuille) •Soit poss`ede (k+ 1) ifils tels que les cl´es du i`eme ifils ont des valeurs comprises entre les valeurs du (i-1)`eme eti`eme cl´es du p`ere arbre-B - v1.64 / 31

D´eifinition

Structure d'un noeud

D´eifinitionNoeud

•kcl´es tri´ees •k+ 1 pointeurs tels que : T oussont difff ´erentsde NIL si le noeud n'est pas une feuille

T ous` aNIL si le noeud est un efeuille P

0k 1P 1k 2P 2..P k-1k kP kk1

2 k-1kkarbre-B - v1.65 / 31

D´eifinition

Capacit´e

Nombre de cl´es

Arbre-B d'ordremet de hauteurh:

,→Nombre de cl´e(s) minimal = 2∗(m+ 1)h-1 ,→Nombre de cl´es maximal = (2∗m+ 1)h+1-1 Exemple :m= 100,h= 2 : Nombre maximal de cl´es≈8 000 000Stockage sur disque ,→Un noeud = Un bloc (ensemble de secteurs)arbre-B - v1.66 / 31

D´eifinition

Exemple

Exemple :Arbre-B d'ordre 251

11 30

2 712 15 2235 4166 78

53 54 6368 69 71 7679 84 93

D´eifinition

Conception

Conception d´etaill´ee

TypeArbreB=ˆNoeud

TypeNoeud= Structure

nbCles :NaturelNonNul cles :Tableau[1..MAX] deValeur sousArbres :Tableau[0..MAX] deArbreB ifinstructure ... tel que le typeValeurposs`ede un ordre totalInformation Contrairement au premier cours sur les SDD, nous utiliserons ici aucune fonction/proc´edure d'encapsulation arbre-B - v1.68 / 31

Recherche d'un ´el´ement de cl´ec1 / 3P

0k 1P 1k 2P 2..P k-1k kP kk1

2 k-1kkPrincipe

`A partir de la racine, pour chaque noeud examin´e :La cl´eCest pr´esente (recherche qui peut ˆetre dichotomique)

→succ`esCkk→recherche dans le sous-arbre le plus `a droite (via le pointeurPk)k irecherche dans le sous-arbre (via le pointeurPi)Si l'arbre est vide (pointeur vaut NIL)→´echec

Recherche d'un ´el´ement de cl´ec2 / 3fonctionestPresent(a : ArbreB, c : Valeur) : Booleen debut sia=NIL alors retournerFAUX sinon sicaˆ.cles[aˆ.nbCles]alors sinon siresalors retournerVRAI sinon retournerestPresent(ssArbre,c) ifinsi ifinsi ifinsi ifinsi ifin

Recherche d'un ´el´ement de cl´ec3 / 3fonctionestPresentDansNoeud(n : Noeud, c : Valeur) : Booleen, ArbreB

D´eclarationg,d,m :NaturelNonNul

debut g←1 d←n.nbCles tant queg̸=dfaire m←(g+d) div 2 sin.cles[m]≥calors d←m sinon g←m+1 ifinsi ifintantque sin.cles[g]=calors retournerVRAI,NIL sinon retournerFAUX, sousArbres[g-1] ifinsi ifinRemarque

getdr´ef´erencent la position de l'´el´ement sup´erieur ou ´egal `a la valeur recherch´ee

Insertion dans un arbre-B d'ordremPrincipe

1L'insertion se fait r´ecursivement au niveau des feuilles

2Si un noeud a alors plus 2m+ 1 cl´es, il y a ´eclatement du

noeud et remont´ee (grˆace `a la r´ecursivit´e) de la cl´e m´ediane au niveau du p`ere3Il y a augmentation de la hauteur de l'arbre lorsque la racine se retrouve avec 2m+ 1 cl´es ,→l'augmentation de la hauteur de l'arbre se fait donc au niveau de la racine!

Exemple : cas d'un noeud plein 1 / 2

Exemple :Insertion de75?51

11 30

2 712 15 2235 4166 78

53 54 6368 69 71 7679 84 93

1Eclatement du noeud en deux :

Les (deux) plus

p etites cl ´esrestent dans le noeud

Les (deux) plus

gran des cl ´essont ins ´er´eesdans un nouveau noeud2Remont´ee de la cl´e m´ediane dans le noeud p`ere (e.g. ici71)

Exemple : cas d'un noeud plein 2 / 2

Exemple :Insertion de75?51

11 30

2 712 15 2235 4166717853 54 6368 69757679 84 93

1Eclatement du noeud en deux :

Les (deux) plus

p etites cl ´esrestent dans le noeud

Les (deux) plus

gran des cl ´essont ins ´er´eesdans un nouveau noeud2Remont´ee de la cl´e m´ediane dans le noeud p`ere (e.g. ici71)

Insertion Arbre-B

Exemple : cas de l'augmentation de la hauteur 1 / 2

Arbre-B d'ordre 2 :5 11 16 21

1 2 3 46 7 8 1012 13 14 1517 18 19 2022 23 24 25

Insertion cl´e9→Eclatement + remont´ee de la cl´e8au noeud p`ereRemont´ee de la cl´e8au noeud p`ere→Eclatement + cr´eation nouvelle

racine (e.g. ici11)arbre-B - v1.615 / 31

Insertion Arbre-B

Exemple : cas de l'augmentation de la hauteur 2 / 2

Arbre-B d'ordre 2 :11

581 2 3 46 791016 21

12 13 14 1517 18 19 2022 23 24 25

Insertion cl´e9→Eclatement + remont´ee de la cl´e8au noeud p`ereRemont´ee de la cl´e8au noeud p`ere→Eclatement + cr´eation nouvelle

racine (e.g. ici11) ,→Augmentation d'une unit´e de la hauteurarbre-B - v1.616 / 31

Insertion Arbre-B

Algorithme 1 / 2

Pr´erequis

On suppose poss´eder les fonctions/proc´edures suivantes :fonctioncreerFeuille(c :Tableau[1..MAX] deValeur, nb :NaturelNonNul) :

ArbreBfonctionestUneFeuille(a : ArbreB) : Booleenproc´edureeclater(E/Sa : ArbreB,Eordre :NaturelNonNul)

⌊pr´econdition(s)aˆ.nbCles=2*ordre+1fonctionpositionDInsertion(a : ArbreB, c : Valeur) : NaturelNonNulproc´edureinsererUneCleDansNoeud(E/Sn : Noeud,Ec : Valeur, pos :

NaturelNonNul)proc´edureinsererRacineDeTailleUnDansNoeud(E/Sn : Noeud,Eracine :

ArbreB, pos :NaturelNonNul)

⌊pr´econdition(s)racineˆ.nbCles=1arbre-B - v1.617 / 31

Insertion Arbre-B

Algorithme 2 / 2

proc´edureinserer(E/Sa : ArbreB,Ec : Valeur, ordre :NaturelNonNul) ⌊pr´econdition(s)2*ordreD´eclarationtab :Tableau[1..MAX] deValeur

debut sia =NIL alors tab[1]←c a←creerFeuille(tab,1) sinon pos←positionDInsertion(a,c) siestUneFeuille(a)alors insererUneCleDansNoeud(aˆ,c,pos) siaˆ.nbCles>2*ordrealors eclater(a, ordre) ifinsi sinon ssArbre←aˆ.sousArbres[pos-1] inserer(ssArbre,c,ordre) sissArbre̸= aˆ.sousArbres[pos-1]alors siaˆ.nbCles>2*ordrealors eclater(a, ordre) ifinsi ifinsi ifinsi ifinsi ifinarbre-B - v1.618 / 31

Suppression Arbre-B

Supression dans un arbre-B d'ordremPrincipe

1La suppression se fait toujours au niveau des feuilles

,→Si la cl´e `a supprimer n'est pas dans une feuille, alors la remplacer par la plus grande valeur des plus petites (ou plus

petite valeur des plus grandes) et supprimer cette derni`ere2Si la suppression de la cl´e d'une feuille (r´ecursivement d'un

noeud) am`ene `a avoir moins demcl´es :1Combinaison avec un noeud voisin (avant ou apr`es)

2Descente de la cl´e associant ces deux noeuds (´eclatement du

noeud si n´ecessaire et donc remont´e d'une nouvelle cl´e) ,→la r´ecursivit´e de ce principe peut ammener `a diminuer la hauteur de l'arbre (par le haut) arbre-B - v1.619 / 31

Suppression Arbre-B

Ex. cas 1 : tr`es simple

Arbre-B d'ordre 2 :10 15 27

12 14202526Rappel: ici nombre de cl´es par noeud non racine>1

,→Exemple :Suppression de la cl´e25?M´ethode

1Suppression de la valeur (d´ecalage des valeurs dans le tableau)

arbre-B - v1.620 / 31

Suppression Arbre-B

Ex. cas 2 : simple 1 / 2

Arbre-B d'ordre 2 :1015 27

12 142025Rappel: ici nombre de cl´es par noeud non racine≥2

,→Exemple :Suppression de la cl´e25?M´ethode

1Combinaison avec un noeud voisin

2Descente de la cl´e (ici15 )

3Suppression du noeud

arbre-B - v1.621 / 31

Suppression Arbre-B

Ex. cas 2 : simple 2 / 2

Arbre-B d'ordre 2 :10 27

12 14 15 20 Rappel: ici nombre de cl´es par noeud non racine≥2 ,→Exemple :Suppression de la cl´e25?M´ethode

1Combinaison avec un noeud voisin ([12 14] et 20)

2Descente de la cl´e m´ediane (ici15 )

3Suppression du noeud

arbre-B - v1.622 / 31

Suppression Arbre-B

Ex. cas 3 : avec ´eclatement 1 / 2

Arbre-B d'ordre 2 :4 8

,→Exemple :Suppression de la cl´e6?Suppression cl´e6→Combinaison [1 2 3] et 7 + descente de la cl´e4 au

noeud ifilsDescente de la cl´e4 au noeud ifils →Redistribution + remont´ee de cl´e m´ediane (e.g. ici3)arbre-B - v1.623 / 31

Suppression Arbre-B

Ex. cas 3 : avec ´eclatement 2 / 2

Arbre-B d'ordre 2 :3 8

1 247

,→Exemple :Suppression de la cl´e6?Suppression cl´e6→Combinaison [1 2 3] et 7 + descente de la cl´e4 au

noeud ifilsDescente de la cl´e4 au noeud ifils →Redistribution + remont´ee de cl´e m´ediane (e.g. ici3)arbre-B - v1.624 / 31

Suppression Arbre-B

Ex. cas 4 : avec un nombre de cl´es inf´erieurs `am1 / 2

Arbre-B d'ordre 2 :11

3 8

1 2479 1016 2111

8 1 2 3

7 9 1016 21

,→Exemple :Suppression de la cl´e4?Combinaison ([1 2] et 7) + descente de la cl´e3 arbre-B - v1.625 / 31

Suppression Arbre-B

Ex. cas 4 : avec un nombre de cl´es inf´erieurs `am2 / 2

Arbre-B d'ordre 2 :811 16 21

1 2 3 79 10

,→Exemple :Suppression de la cl´e4?Combinaison + descente de la cl´e3 Combinaison (8 et [16 21]) + descente de la cl´e 11 ,→Diminution d'une unit´e de la hauteurarbre-B - v1.626 / 31

Suppression Arbre-B

Ex. cas 5 : suppression non feuille

Arbre-B d'ordre 2 :581 2 34 6 79 1048

1 2 36 79 10

,→Exemple :Suppression de la cl´e5?M´ethode

1Recherche d'une cl´e adjacenteA ` ala cl ´e` asupp rimer→on

choisit la plus grande du sous a rbregauche 2Remplacement de la cl´e `a supprimer parA

3Suppression de la cl´eA du sous a rbregauche

arbre-B - v1.627 / 31

Suppression Arbre-B

Algorithme 1 / 4

Pr´erequis

On suppose poss´eder les fonctions/proc´edures suivantes :fonctionplusGrandeValeur(a : ArbreB) :Valeur

⌊pr´econdition(s)a̸=NILfonctionpositionCleDansNoeudRacine(a : ArbreB, c : Valeur) : Entier

⌊pr´econdition(s)a̸=NIL

-1 si non pr´esentfonctionpositionSsArbrePouvantContenirValeur(a : Arbre, c : Valeur) : Naturelfonctionfreres(a : ArbreB, posSsArbre :Naturel) :ArbreB, ArbreB

⌊pr´econdition(s)a̸=NILet aˆ.sousArbres[posSsArbre]̸=NILproc´eduresupprimerCleDansNoeudFeuille(E/Sn : Noeud,Ec : Valeur)proc´edurecopierValeurs(StDest :Tableau[1..MAX] deValeur,EtSource :Tableau[1..MAX] deValeur,

indiceDebutDest, indiceDebutSource, nb :NaturelNonNul)

⌊pr´econdition(s)indiceDebutSource+nb

NaturelNonNul)arbre-B - v1.628 / 31

Suppression Arbre-B

Algorithme 2 / 4

Cas simples

proc´eduresupprimer(E/Sa : ArbreB,Ec : Valeur, ordre :NaturelNonNul, frereG, frereD : ArbreB, clePere :

Valeur)

D´eclaration...

debut sia̸=NIL alors pos←positionCleDansNoeudRacine(a,c) siestUneFeuille(a)alors sipos̸= -1alors sifrereG =NILet frereD =NILet aˆ.nbCles=1alors desallouer(a)// n'est possible que pour la racine sinon

Algo #1 : supprimer c dans une feuille

ifinsi ifinsi sinon sipos = -1alors sinon // cas # 5 des exemples aˆ.valeurs[pos]←cleRemplacement c←cleRemplacement posSsArbre←pos-1 ifinsi Algo #2 : supprimercdans un sous-arbre de rang posSsArbre ifinsi ifinsi ifinarbre-B - v1.629 / 31

Suppression Arbre-B

Algorithme 3 / 4

Algo #1 : supprimercdans une feuillesupprimerCleDansNoeudFeuille(aˆ,c) siaˆ.nbCles2*ordrealors eclater(res, ordre) ifinsi ifinsiarbre-B - v1.630 / 31

Suppression Arbre-B

Algorithme 4 / 4

Algo #2 : supprimercdans le sous-arbrefrereG,frereD←freres(a,posSsArbre) temp←aˆ.sousArbres[posSsArbre] supprimer(temp,c,ordre,frereG,frereD, tempˆ.valeurs[posSsArbre]) sitemp̸= aˆ.sousArbres[posSsArbre]alors //cas ou il y a eu combinaison avec un frere sitempˆ.nbCles=1alors // cas #3 des exemples : il y a eu ´eclatement apr`es combinaison sinon // cas #2 des exemples aˆ.sousArbres[posSsArbre]←temp ifinsi ifinsiExercice

Comment prendre en compte le cas #4 des exemples?

arbre-B - v1.631 / 31quotesdbs_dbs15.pdfusesText_21

[PDF] insertion arbre binaire de recherche

[PDF] structure de données les arbres exercices corrigé

[PDF] arbre binaire de recherche suppression

[PDF] exercices sur les arbres binaires en c

[PDF] exercice corrigé arbre rouge et noir

[PDF] arbre binaire de recherche en c

[PDF] les arbres en c openclassroom

[PDF] arbre binaire de recherche algorithme

[PDF] arbre binaire de recherche algorithme suppression

[PDF] parcours en profondeur arbre

[PDF] arbre binaire complet

[PDF] dénombrement cours

[PDF] arbre de probabilité pile ou face

[PDF] arbre de probabilité seconde

[PDF] arbre probabilité conditionnelle