diff --git a/slides/cours_22.md b/slides/cours_22.md index d65e7a6e63c01ba2b478bf3c71aeb3b5ae221b18..2bce0cafc3aaa88ee90c69b4222c81561ebb0210 100644 --- a/slides/cours_22.md +++ b/slides/cours_22.md @@ -33,7 +33,7 @@ date: "2025-05-09" . . . 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 : 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`; @@ -92,7 +92,7 @@ date: "2025-05-09" * Si la page est pleine: * On trouve la valeur médiane `M` de la page (quel indice?); * 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 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 ## Les fonctions utilitaires (5min matrix) ```C -booléen est_feuille(page) // la page est elle une feuille? -entier position(page, valeur) // à quelle indice on insère? -booléen est_dans_page(page, valeur) // la valeur est dans la page +booléen est_feuille(page) // la page est-elle une feuille? +entier position(page, valeur) // à quelle indice insère-t-on? +booléen est_dans_page(page, valeur) // la valeur est-elle dans la page? ``` . . . @@ -356,7 +356,7 @@ page ajouter_niveau(page, element) . . . * 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. . . . @@ -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? . . . @@ -404,7 +404,7 @@ page ajouter_niveau(page, element) ## Algorithme pour les feuilles! * 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. # Les B-arbres: suppression @@ -442,7 +442,7 @@ page ajouter_niveau(page, element) ## Algorithme pour les non-feuilles! * 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! ## Et maintenant des exercices par millions!