Skip to content
Snippets Groups Projects
Commit 6a7f0d88 authored by paul.albuquer's avatar paul.albuquer
Browse files

Edit cours_22.md

parent 8bea934d
No related branches found
No related tags found
No related merge requests found
Pipeline #40211 passed
...@@ -33,7 +33,7 @@ date: "2025-05-09" ...@@ -33,7 +33,7 @@ date: "2025-05-09"
. . . . . .
0. Rechercher la feuille (la page a aucun enfant) où insérer; 0. Rechercher la feuille (la page a aucun enfant) où insérer;
1. Si la page n'est pas pleine insérer dans l'ordre croissant. 1. Si la page n'est pas pleine, insérer dans l'ordre croissant.
2. Si la page est pleine, on sépare la page en son milieu : 2. Si la page est pleine, on sépare la page en son milieu :
1. On trouve la médiane, `M`, de la page; 1. On trouve la médiane, `M`, de la page;
2. On met les éléments `< M` dans la page de gauche de `M` et les `> M` dans la page de droite de `M`; 2. On met les éléments `< M` dans la page de gauche de `M` et les `> M` dans la page de droite de `M`;
...@@ -92,7 +92,7 @@ date: "2025-05-09" ...@@ -92,7 +92,7 @@ date: "2025-05-09"
* Si la page est pleine: * Si la page est pleine:
* On trouve la valeur médiane `M` de la page (quel indice?); * On trouve la valeur médiane `M` de la page (quel indice?);
* On crée une nouvelle page de droite; * On crée une nouvelle page de droite;
* On copie les valeur à droite de `M` dans la nouvelle page; * On copie les valeurs à droite de `M` dans la nouvelle page;
* On promeut `M` dans la page du dessus; * On promeut `M` dans la page du dessus;
* On connecte le pointeur de gauche de `M` et de droite de `M` avec l'ancienne et la nouvelle page respectivement. * On connecte le pointeur de gauche de `M` et de droite de `M` avec l'ancienne et la nouvelle page respectivement.
...@@ -121,9 +121,9 @@ struct element ...@@ -121,9 +121,9 @@ struct element
## Les fonctions utilitaires (5min matrix) ## Les fonctions utilitaires (5min matrix)
```C ```C
booléen est_feuille(page) // la page est elle une feuille? booléen est_feuille(page) // la page est-elle une feuille?
entier position(page, valeur) // à quelle indice on insère? entier position(page, valeur) // à quelle indice insère-t-on?
booléen est_dans_page(page, valeur) // la valeur est dans la page booléen est_dans_page(page, valeur) // la valeur est-elle dans la page?
``` ```
. . . . . .
...@@ -356,7 +356,7 @@ page ajouter_niveau(page, element) ...@@ -356,7 +356,7 @@ page ajouter_niveau(page, element)
. . . . . .
* Un élément à droite, comment on fait? * Un élément à droite, comment on fait?
* Remonter `7`, serait ok si racine, mais... c'est pas forcément. * Remonter `7`, serait ok si racine, mais... ce n'est pas forcément le cas.
* On redistribue les feuilles. * On redistribue les feuilles.
. . . . . .
...@@ -388,7 +388,7 @@ page ajouter_niveau(page, element) ...@@ -388,7 +388,7 @@ page ajouter_niveau(page, element)
. . . . . .
* `8` est seul, c'est plus un B-arbre : * `8` est seul, ce n'est plus un B-arbre :
* Fusionner le niveau 2 et redistribuer, comment? * Fusionner le niveau 2 et redistribuer, comment?
. . . . . .
...@@ -404,7 +404,7 @@ page ajouter_niveau(page, element) ...@@ -404,7 +404,7 @@ page ajouter_niveau(page, element)
## Algorithme pour les feuilles! ## Algorithme pour les feuilles!
* Si la clé est supprimée d'une feuille: * Si la clé est supprimée d'une feuille:
* Si on a toujours `n` (ordre de l'arbre) clés dans la feuille on décale simplement les clés. * Si on a toujours `n` (ordre de l'arbre) clés dans la feuille, on décale simplement les clés.
* Sinon on combine (récursivement) avec le nœud voisin et on descend la clé médiane. * Sinon on combine (récursivement) avec le nœud voisin et on descend la clé médiane.
# Les B-arbres: suppression # Les B-arbres: suppression
...@@ -442,7 +442,7 @@ page ajouter_niveau(page, element) ...@@ -442,7 +442,7 @@ page ajouter_niveau(page, element)
## Algorithme pour les non-feuilles! ## Algorithme pour les non-feuilles!
* Si la clé est supprimée d'une page qui n'est pas une feuille: * Si la clé est supprimée d'une page qui n'est pas une feuille:
* On échange la valeur avec la valeur de droite de la page de gauche * On échange la valeur avec la valeur de droite de la page de gauche.
* On supprime comme pour une feuille! * On supprime comme pour une feuille!
## Et maintenant des exercices par millions! ## Et maintenant des exercices par millions!
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment