diff --git a/slides/cours_22.md b/slides/cours_22.md
index 7ed396dde9046f085452921dd4e9afa895fd1c4d..06fb1a27a2a36440324d2da3cfce6035f63f2f2f 100644
--- a/slides/cours_22.md
+++ b/slides/cours_22.md
@@ -15,12 +15,6 @@ patat:
     backend: auto
 ---
 
-# Le cours précédent
-
-* Questions:
-
-
-
 # Les B-arbres
 
 ## Problématique
@@ -391,7 +385,7 @@ P_0 | K_1 | P_1 | K_2 |  | P_i | K_{i+1} |  | P_{m-1} | K_m | P_m
 
 ```C
 struct page
-    int ordre, nb
+    entier ordre, nb
     element tab[2*ordre + 2]
 ```
 
@@ -403,6 +397,57 @@ struct element
 
 # Les B-arbres
 
+## 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?
+```
+
+. . .
+
+```C
+booléen est_feuille(page) 
+    retourne (page.tab[0] == vide)
+entier position(page, valeur)
+    i = 0
+    tant que i < page.nb && val >= page.tab[i]
+        i += 1
+    retourne i
+```
+
+# Les B-arbres
+
+\footnotesize
+
+## Les fonctions utilitaires (5min matrix)
+
+```C
+page nouvelle_page(ordre)  // creer une page
+rien liberer_memoire(page) // liberer tout un arbre!
+```
+. . .
+
+```C
+page nouvelle_page(ordre)
+    page = allouer(page)
+    page.ordre = ordre
+    page.nb = 0
+    page.tab = allouer(2*ordre+2)
+    retourner page
+rien liberer_memoire(page)
+    si est_feuille(page)
+        liberer(page.tab)
+        liberer(page)
+    sinon
+        pour fille dans page.tab
+            liberer_memoire(fille)
+        liberer(page.tab)
+        liberer(page)
+```
+
+# Les B-arbres
+
 
 
 <!-- # Les B-arbres -->