diff --git a/slides/cours_15.md b/slides/cours_15.md
index 592ac2e3197480bd20ce1f32fcd217e982857a2d..fe1d4167a691faa57bf26b294301a3787c3b6671 100644
--- a/slides/cours_15.md
+++ b/slides/cours_15.md
@@ -36,6 +36,12 @@ patat:
 * Le **niveau** est 1 à la racine et **niveau+1** pour les fils,
 * Le **degré** d'un noeud est le nombre de fils du noeud.
 
+. . .
+
+* Chaque noeud est un arbre en lui même.
+* La **récursivité** sera très utile!
+
+
 # Arbre ou pas arbre?
 
 ::: columns
@@ -159,18 +165,259 @@ graph TD;
 
 # Application: recherche rapide
 
+## Pouvez vous construire un arbre pour résoudre le nombre secret?
+
+ . . .
+
 * Le nombre secret ou la recherche dychotomique (nombre entre 0 et 10).
 
-```{.mermaid format=pdf width=300 loc=figs/}
+```{.mermaid format=pdf width=280 loc=figs/}
 graph LR;
-    5-->2;
-    5-->7;
-    7-->8;
-    7-->6;
-    8-->9;
-    9-->10;
-    2-->1;
-    2-->3;
-    3-->4;
-    1-->0;
+    5-->|<|2;
+    5-->|>|7;
+    7-->|>|8;
+    7-->|<|6;
+    8-->|>|9;
+    9-->|>|10;
+    2-->|<|1;
+    2-->|>|3;
+    3-->|>|4;
+    1-->|<|0;
+```
+
+# Autres représentation
+
+* Botanique
+* Ajouter les degrés/niveaux et feuilles
+
+```{.mermaid width=300 format=pdf loc=figs/}
+graph TD;
+    A-->B;
+    A-->C;
+    B-->D;
+    B-->E;
+    B-->F;
+    F-->I;
+    F-->J;
+    C-->G;
+    C-->H;
+    H-->K;
+```
+
+# Autres représentation
+
+* Ensembliste
+
+::: columns
+
+:::: column
+```{.mermaid width=300 format=pdf loc=figs/}
+graph TD;
+    A-->B;
+    A-->C;
+    B-->D;
+    B-->E;
+    B-->F;
+    F-->I;
+    F-->J;
+    C-->G;
+    C-->H;
+    H-->K;
+```
+::::
+
+. . .
+
+:::: column
+![](figs/ensemble.svg)
+::::
+
+:::
+
+# Autres représentation
+
+* Liste
+
+::: columns
+
+:::: column
+```{.mermaid width=300 format=pdf loc=figs/}
+graph TD;
+    A-->B;
+    A-->C;
+    B-->D;
+    B-->E;
+    B-->F;
+    F-->I;
+    F-->J;
+    C-->G;
+    C-->H;
+    H-->K;
+```
+::::
+
+. . .
+
+:::: column
+```
+(A 
+    (B 
+        (D) 
+        (E) 
+        (F 
+            (I) 
+            (J)
+        )
+    ) 
+    (C
+        (G) 
+        (H 
+            (K)
+        )
+    )
+)
+```
+::::
+
+:::
+
+# Autres représentation
+
+* Par niveau
+
+::: columns
+
+:::: column
+```{.mermaid width=300 format=pdf loc=figs/}
+graph TD;
+    A-->B;
+    A-->C;
+    B-->D;
+    B-->E;
+    B-->F;
+    F-->I;
+    F-->J;
+    C-->G;
+    C-->H;
+    H-->K;
 ```
+::::
+
+. . .
+
+:::: column
+```
+1       2       3       4
+-------------------------
+A       
+        B       
+                D 
+                E 
+                F           
+                        I
+                        J
+        C       
+                G
+                H
+                        K
+```
+::::
+
+:::
+
+# L'arbre binaire
+
+* Structure de données abstraite,
+* Chaque noeud a au plus deux fils: gauche et droite,
+* Chaque fils est un arbre.
+
+## Comment représenteriez vous une telle structure?
+
+. . .
+
+```C
+<r, A1, A2>
+    r: racine
+    A1: sous-arbre gauche
+    A2: sous-arbre droite
+```
+
+## Comment cela s'écrirait en C?
+
+. . .
+
+```C
+typedef struct _node {
+    contenu info;
+    struct _node *left_subtree, *right_subtree;
+} node;
+typedef node *tree;
+```
+
+# L'arbre binaire
+
+## Que se passerait-il avec 
+
+```C
+typedef struct _node {
+    int info;
+    struct _node left_subtree, right_subtree;
+} node;
+```
+
+* On ne sait pas quelle est la taille de node, on ne peut pas l'allouer!
+
+## Interface minimale
+
+* Qu'y mettriez vous?
+
+. . .
+
+```C 
+NULL              -> arbre (vide)
+<n, arbre, arbre> -> arbre
+racine(arbre)     -> noeud
+gauche(arbre)     -> arbre (sous-arbre de gauche)
+droite(arbre)     -> arbre (sous-arbre de droite)
+```
+
+* Les autres opérations (insertion, parcours, etc) dépendent de ce qu'on stocke
+  dans l'arbre.
+
+# Exemple d'arbre binaire
+
+* Représentez `(a * b - c) * (d + e / f)` à l'aide d'un arbre binaire (matrix)
+
+. . .
+
+::: columns
+
+:::: column
+```{.mermaid format=pdf width=200 loc=figs/}
+graph TD;
+    A[*]-->B[-];
+    B-->C[c];
+    B-->D[*];
+    D-->E[a];
+    D-->F[b];
+    A-->G[+];
+    G-->H[d];
+    G-->I["/"];
+    I-->J[e];
+    I-->K[f];
+```
+::::
+
+
+:::: column
+
+## Remarques
+
+* L'arbre est **hétérogène**: le genre d'info est pas le même sur chaque noeud.
+    * Les feuilles contiennent les opérandes.
+    * Les noeuds internes contiennent les opérateurs.
+
+::::
+
+:::
+