Algorithme d’insertion dans un arbre B+
Trouvez la feuille où l’on doit insérer la nouvelle valeur en suivant la règle de <=
à gauche ( ou >= à droite ).
Insérer dans la feuille en ordre de tri.
Si la feuille est pleine, alors il y a débordement “ Overflow ”, Il faut créer un
nouveau nœud :
Insérer les j = [ ( pleaf+ 1 )/2 ] premières entrées dans le nœud original et le
autres entrées dans le nouveau nœud.
La jième valeur (+1 pour la règle du >= à droite ) de clé est répliqué dans le
parent et un nouveau pointeur au nouveau nœud est aussi ajouté au parent.
Si il y a débordement dans le parent, Il faut créer un nouveau nœud :
Les entrées dans le nœud interne jusqu’à Pj reste en place. Pj est le jième
pointeur après insertion de la nouvelle valeur et pointeur, où j = [ ( p + 1 )/2 ].
La jième valeur (+1 pour la règle du >= à droite ) de clé est déplacé, et non pas
répliqué, dans le parent.
Le nouveau nœud va contenir les entrées à partir de Pj+1 jusqu’à la fin des
entrées.
Les division peuvent se propager jusqu’à créer une nouvelle racine et par
conséquent un nouveau niveau pour l’arbre B+.
Algorithme d’effacement dans un arbre B+
Lorsqu’une entrée est effacée, elle est d’abord retirer de son nœud terminal ( sa
feuille ).
Si cette valeur est aussi dans un nœud interne, elle doit aussi y être retirée. La
valeur à sa gauche ( à sa droite pour la règle du >= à droite ) dans le nœud
terminal la remplace dans le nœud interne.
L’effacement peut causer une insuffisance de valeur dans le nœud terminal. Dans
ce cas, il faut faire une redistribution des valeurs avec les feuilles voisines afin
que toutes les feuilles aient le nombre minimum de valeur requis.
Si la redistribution est impossible, il faut fusionner des feuilles.
Lorsque des feuilles sont fusionnées, les insuffisances de valeur peuvent se
propager dans les nœuds internes puisque moins de pointeur sont requis. Il faut
alors comprimer les nœuds internes en suivant les règles de base.
Notez que la propagation peut entraîner l’élimination d’un niveau.
1 / 1 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !