diff --git a/slides/cours_23.md b/slides/cours_23.md
index a8ec3df91ce7f7b7184b345703aec82039126d2b..22329fd0429311c1ec8a3f45a888415851f9b3ab 100644
--- a/slides/cours_23.md
+++ b/slides/cours_23.md
@@ -17,7 +17,7 @@ Les graphes
 
 * Existe-t-il une promenade sympa, passant **une seule fois** par les 7 ponts et revenant au point de départ?
 
-![Les ponts c'est beau. Source: Wikipédia, <https://bit.ly/37h0yOG>](figs/Konigsberg_bridges.png){width=40%}
+![Les ponts, c'est beau. Source: Wikipédia, <https://bit.ly/37h0yOG>](figs/Konigsberg_bridges.png){width=40%}
 
 . . .
 
@@ -27,7 +27,7 @@ Les graphes
 
 ## Réseau social
 
-![Source, Wikipedia: <https://bit.ly/3kG6cgo>](figs/Social_Network.svg){width=40%}
+![Source: Wikipedia, <https://bit.ly/3kG6cgo>](figs/Social_Network.svg){width=40%}
 
 * Chaque sommet est un individu.
 * Chaque trait une relation d'amitié.
@@ -37,11 +37,11 @@ Les graphes
 
 ## Moteurs de recherche
 
-![Source, Wikipedia: <https://bit.ly/3kG6cgo>](figs/PageRanks-Example.svg){width=40%}
+![Source: Wikipedia, <https://bit.ly/3kG6cgo>](figs/PageRanks-Example.svg){width=40%}
 
-* Sommet est un site.
-* Liens sortants;
-* Liens entrants;
+* Site est un sommet.
+* Liens sortants.
+* Liens entrants.
 * Notion d'importance d'un site: combien de liens entrants, pondérés par l'importance du site.
 * Miam, Miam, Google (PageRank).
 
@@ -75,7 +75,8 @@ Les graphes
 ## Notations
 
 * Une arête d'un graphe **non-orienté** est représentée par une paire **non-ordonnée** $(u,v)=(v,u)$, avec $u,v\in V$.
-* Les arêtes ne sont pas orientées dans un graphe non-orienté (elles sont bi-directionnelles, peuvent être parcourues dans n'importe quel ordre).
+* Les arêtes ne sont pas orientées dans un graphe non-orienté 
+(elles sont bi-directionnelles, c.-à-d. peuvent être parcourues dans n'importe quel sens).
 
 ## Exemple
 
@@ -147,7 +148,7 @@ E&=\{(1,2),(2,3),(2,4),(4,1),(4,2)\},\\
 ## Définition
 
 * Le somme $v$ est **adjacent** au sommet $u$, si et seulement si $(u,v)\in E$;
-* Si un graphe non-orienté contient une arête $(u,v)$, $v$ est adjacent à $u$ et $u$ et adjacent à $v$.
+* Si un graphe non-orienté contient une arête $(u,v)$, $v$ est adjacent à $u$ et $u$ est adjacent à $v$.
 
 ## Exemple
 
@@ -161,7 +162,7 @@ E&=\{(1,2),(2,3),(2,4),(4,1),(4,2)\},\\
 
 :::: column
 
-![Sommet $a$  adjacent à $c$.](figs/ex_adj_or.svg){width=60%}
+![Sommet $c$  adjacent à $a$.](figs/ex_adj_or.svg){width=60%}
 
 ::::
 
@@ -191,17 +192,17 @@ avec $k$ la longueur de la chaîne (le nombre d'arêtes du chemin).
 
 ## Exemples
 
-![Illustration d'une chaîne, ou pas chaîne dans un graphe.](figs/ex_graphe_chaine.pdf){width=80%}
+![Illustration d'une chaîne dans un graphe.](figs/ex_graphe_chaine.pdf){width=80%}
 
 # Généralités
 
 ## Définition
 
-* Une **chaîne élémentaire** est une chaîne dont tous les sommets sont distincts, sauf les extrémités qui peuvent être égales
+* Une **chaîne élémentaire** est une chaîne dont tous les sommets sont distincts, sauf les extrémités qui peuvent être égales.
 
 ## Exemples
 
-![Illustration d'une chaîne élémentaire.](figs/ex_graphe_chaine_elem.pdf){width=80%}
+![Illustration d'une chaîne élémentaire dans un graphe.](figs/ex_graphe_chaine_elem.pdf){width=80%}
 
 # Généralités
 
@@ -211,7 +212,7 @@ avec $k$ la longueur de la chaîne (le nombre d'arêtes du chemin).
 
 ## Exemples
 
-![Illustration d'une boucle.](figs/ex_graphe_boucle.pdf){width=40%}
+![Illustration d'une boucle dans un graphe.](figs/ex_graphe_boucle.pdf){width=40%}
 
 # Généralités
 
@@ -227,12 +228,12 @@ avec $k$ la longueur de la chaîne (le nombre d'arêtes du chemin).
 
 :::: column
 
-![Graphe connexe. Source, Wikipédia: <https://bit.ly/3yiUzUv>](figs/graphe_connexe.svg){width=60%}
+![Graphe connexe. Source: Wikipédia, <https://bit.ly/3yiUzUv>](figs/graphe_connexe.svg){width=60%}
 
 ::::
 
 :::: column
-![Graphe non-connexe avec composantes connexes. Source, Wikipédia: <https://bit.ly/3KJB76d>](figs/composantes_connexes.svg){width=40%}
+![Graphe non-connexe avec composantes connexes. Source: Wikipédia, <https://bit.ly/3KJB76d>](figs/composantes_connexes.svg){width=40%}
 
 ::::
 
@@ -269,12 +270,12 @@ avec $k$ la longueur de la chaîne (le nombre d'arêtes du chemin).
 ## Définition
 
 * Un **cycle** dans un graphe *non-orienté* est une chaîne de longueur $\geq 3$ telle que le 1er sommet de la chaîne est le même que le dernier, et dont les arêtes sont distinctes.
-* Pour un graphe *orienté* on parle de **circuit**.
+* Pour un graphe *orienté*, on parle de **circuit**.
 * Un graphe sans cycles est dit **acyclique**.
 
 ## Exemples
 
-![Illustration de cycles, ou pas.](figs/ex_graphe_cycle.pdf){width=100%}
+![Illustration de cycles.](figs/ex_graphe_cycle.pdf){width=100%}
 
 # Question de la mort
 
@@ -289,7 +290,7 @@ avec $k$ la longueur de la chaîne (le nombre d'arêtes du chemin).
 * La complexité des algorithmes sur les graphes s'expriment en fonction du nombre de sommets $V$, et du nombre d'arêtes $E$:
     * Si $|E|\sim |V|^2$, on dit que le graphe est **dense**.
     * Si $|E|\sim |V|$, on dit que le graphe est **peu dense**.
-* Selon qu'on considère des graphes denses ou peu denses, différentes structure de données peuvent être envisagées.
+* Selon qu'on considère des graphes denses ou peu denses, différentes structures de données peuvent être envisagées.
 
 ## Question
 
@@ -461,7 +462,7 @@ $$
 
 . . .
 
-* $\mathcal{O}(|V|^2)$.
+* $\mathcal{O}(|V|^2)$
 * Quel est l'espace nécessaire pour stocker une matrice d'adjacence pour un graphe non-orienté?
 
 . . .
@@ -488,7 +489,7 @@ $$
 
 # La liste d'adjacence (non-orienté)
 
-* Pour chaque sommet $v\in V$, stocker les sommets adjacents à $v$-
+* Pour chaque sommet $v\in V$, stocker les sommets adjacents à $v$.
 * Quelle structure de données pour la liste d'adjacence?
 
 . . .
@@ -573,31 +574,31 @@ graph LR;
 . . .
 
 $$
-\mathcal{O}(|E|)
+\mathcal{O}(|V|+|E|)
 $$
 
-* Pour les graphes *non-orientés*: $\mathcal{O}(2|E|)$.
-* Pour les graphes *orientés*: $\mathcal{O}(|E|)$.
+* Pour les graphes *non-orientés*: $\mathcal{O}(|V|+2|E|)$.
+* Pour les graphes *orientés*: $\mathcal{O}(|V|+|E|)$.
 
 ## Définition
 
 * Le **degré** d'un sommet $v$, est le nombre d'arêtes incidentes du sommet (pour les graphes orientés on a un degré entrant ou sortant).
-* Comment on retrouve le degré de chaque sommet avec la liste d'adjacence?
+* Comment retrouve-t-on le degré de chaque sommet avec la liste d'adjacence?
 
 . . .
 
-* C'est la longueur de la liste chaînée.
+* C'est la longueur de la liste chaînée si le graphe est non-orienté.
 
 
 # Parcours
 
 * Beaucoup d'applications nécessitent de parcourir des graphes:
-    * Trouver un chemin d'un sommet à un autre;
-    * Trouver si le graphe est connexe;
+    * trouver un chemin d'un sommet à un autre;
+    * trouver si le graphe est connexe.
 * Il existe *deux* parcours principaux:
     * en largeur (Breadth-First Search);
     * en profondeur (Depth-First Search).
-* Ces parcours créent *un arbre* au fil de l'exploration (si le graphe est non-connexe cela crée une *forêt*, un ensemble d'arbres).
+* Ces parcours créent *un arbre* au fil de l'exploration (si le graphe est non-connexe, cela crée une *forêt*, c.-à-d. un ensemble d'arbres).
 
 # Illustration: parcours en largeur
 
@@ -621,13 +622,13 @@ $$
 
 ## Étape par étape (vert à visiter)
 
-![Vister `w`, `t`, `y`.](figs/parcours_larg_2.pdf){width=50%}
+![Visiter `w`, `t`, `y`.](figs/parcours_larg_2.pdf){width=50%}
 
 # Exemple
 
 ## Étape par étape
 
-![Vister `w`, `t`, `y`.](figs/parcours_larg_2.pdf){width=50%}
+![Visiter `w`, `t`, `y`.](figs/parcours_larg_2.pdf){width=50%}
 
 ## Étape par étape
 
@@ -718,7 +719,7 @@ pour sommet dans graphe et sommet non-visité
 
 ## Remarque
 
-* `i` est la distance de plus cours chemin entre `v` et les sommets en cours de visite.
+* `i` est la distance de plus court chemin entre `v` et les sommets en cours de visite.
 
 
 # Le parcours en largeur
@@ -729,27 +730,28 @@ pour sommet dans graphe et sommet non-visité
 
 . . .
 
-* Utilisation d'une **file**
+* Utilisation d'une **file d'attente**
 
 . . .
 
 ```C
 initialiser(graphe) // tous sommets sont non-visités
-file = visiter(sommet, vide) // sommet est un sommet du graphe au hasard
+visiter(sommet, file) // on choisit un sommet de départ 
 tant que !est_vide(file)
-    v = défiler(file)
-    file = visiter(v, file)
+    défiler(file, (v,u))
+    si u != visité
+        ajouter (v,u) à l'arbre T
+        visiter(u, file)
 ```
 
 ## Que fait visiter?
 
 ```
-file visiter(sommet, file)
-    sommet = visité
-    pour w = chaque arête de sommet
+rien visiter(x, file)
+    marquer x comme visité
+    pour chaque arête (x,w)
         si w != visité
-            file = enfiler(file, w)
-    retourne file
+            enfiler(file, (x,w))
 ```
 
 # Exercice (5min)
@@ -765,7 +767,7 @@ file visiter(sommet, file)
 
 ## Étape 1
 
-* Extraire un sommet de la file;
+* Extraire un sommet de la file.
 
 ## Étape 2
 
@@ -775,9 +777,9 @@ file visiter(sommet, file)
 
 . . .
 
-* Étape 1: $\mathcal{O}(|V|)$,
-* Étape 2: $\mathcal{O}(2|E|)$,
-* Total: $\mathcal{O}(|V| + |2|E|)$.
+* Étape 1: $\mathcal{O}(|V|)$
+* Étape 2: $\mathcal{O}(2|E|)$
+* Total: $\mathcal{O}(|V| + |2|E|)$
 
 # Exercice
 
@@ -807,7 +809,7 @@ graph LR;
 
 * Initialiser les sommets comme non-lus
 * Visiter un sommet
-* Pour chaque sommet visité, on visite un sommet adjacent s'il est pas encore visité récursivement.
+* Pour chaque sommet visité, on visite un sommet adjacent s'il est pas encore visité, récursivement.
 
 ## Remarque
 
@@ -820,11 +822,13 @@ graph LR;
 . . .
 
 ```C
-initialiser(graphe) // tous sommets sont non-visités
-pile = visiter(sommet, vide) // sommet est un sommet du graphe au hasard
+initialiser(graphe) // tous les sommets sont non-visités
+visiter(sommet, pile) // on a choisit un sommet du graphe
 tant que !est_vide(pile)
-    v = dépiler(pile)
-    pile = visiter(v, pile)
+    dépiler(pile, (v,u))
+    si u != visité
+        ajouter (v,u) dans l'arbre T
+        visiter(u, pile)
 ```
 
 ## Que fait visiter?
@@ -832,12 +836,11 @@ tant que !est_vide(pile)
 . . .
 
 ```C
-pile visiter(sommet, pile)
-    sommet = visité
-    pour w = chaque arête de sommet
+rien visiter(x, pile)
+    marquer x comme visité
+    pour chaque arête (x,w)
         si w != visité
-            pile = empiler(pile, w)
-    retourne pile
+            empiler(pile, (x,w))
 ```
 
 
@@ -860,9 +863,9 @@ graph LR;
 
 # Interprétation des parcours
 
-* Un graphe vu comme espace d'états (sommet: état, arête: action);
-    * Labyrinthe;
-    * Arbre des coups d'un jeu.
+* Un graphe vu comme espace d'états (sommet: état, arête: action)
+    * Labyrinthe
+    * Arbre des coups d'un jeu
 
 . . .