diff --git a/slides/cours_22.md b/slides/cours_22.md
index c953028338f195eef240872720834fc98f15a548..9b72500e43c79455e622c7532e65843fbc2868fb 100644
--- a/slides/cours_22.md
+++ b/slides/cours_22.md
@@ -52,7 +52,7 @@ patat:
 
 ## Utilisation
 
-* Bases de données;
+* Bases de données (souvent très grandes donc sur le disque);
 * Système de fichier.
 
 # Les B-arbres
@@ -84,16 +84,28 @@ patat:
 
 ## Oui!
 
+* Dans chaque noeud les clés sont **triées**.
 * Chaque page contient au plus $n$ noeuds: check;
 * Chaque noeud avec $m$ clés a $m+1$ descendants;
 * Toutes les feuilles apparaissent au même niveau.
 
 # Les B-arbres
 
+## Exemple de recherche: trouver `32`
+
+![B-arbre d'ordre 2.](figs/barbres_exemple.png)
+ 
+. . 
+
+* Si `n` plus petit que la 1e clé ou plus grand que la dernière descendre.
+* Sinon parcourir séquentiellement jusqu'à trouver ou descendre entre 2 éléments.
+
+# Les B-arbres
+
 ## Structure de données
 
-* Éléments triés dans un noeud;
-* Un noeud est composé de clés et pointeurs vers les enfants;
+* Chaque page a une contrainte de remplissage, par rapport à l'ordre de l'arbre;
+* Un noeud (page) est composé d'un tableau de clés/pointeurs vers les enfants;
 
 ```
 P_0 | K_1 | P_1 | K_2 |  | P_i | K_{i+1} |  | P_{m-1} | K_m | P_m
@@ -102,4 +114,38 @@ P_0 | K_1 | P_1 | K_2 |  | P_i | K_{i+1} |  | P_{m-1} | K_m | P_m
 * `P_0`, ..., `P_m` pointeurs vers enfants;
 * `K_1`, ..., `K_m` les clés.
 
+## Pseudo-code structure de données?
+
+. . .
+
+```C
+struct page
+    int ordre, nb
+    element tab[]
+```
+
+```C
+struct element
+    int clé
+    page pg
+```
+
+# Les B-arbres
+
+## Structure de données en C (3min, matrix)
 
+. . .
+
+```C
+typedef struct _page {
+    int order, nb;
+    struct _element *tab;
+} page;
+```
+
+```C
+typedef struct element {
+    int key;
+    struct _page *pg;
+} element;
+```