diff --git a/slides/cours_9.md b/slides/cours_9.md
index 1216294df4b38e53e2230e9647ee28ad5910d129..58e9e075f93f65132bf29f08fb985b157d62f007 100644
--- a/slides/cours_9.md
+++ b/slides/cours_9.md
@@ -691,3 +691,79 @@ void stack_destroy(stack *s) {
 ![Illustration d'une file
 d'attente.](figs/fig_queue_representation.png)
 
+## Structure de données en C?
+
+. . .
+
+```C
+txpedef struct _element {  // Elément de liste
+   int data;
+   struct _element* next;
+} element;
+
+typedef struct _queue {    // File d'attente:
+   element* head;  //    tête de file d'attente
+   element* tail;  //    queue de file d'attente
+} queue;
+```
+
+# Fonctionnalités d'une file d'attente (gitlab)
+
+## Creation et consultations
+
+. . .
+
+```C
+void queue_init(queue *fa); // head = tail = NULL
+bool queue_is_empty(queue fa); // checks if queue is empty
+int queue_tail(queue fa); // returns the value of the tail
+int queue_head(queue fa); // returns the value of the head
+```
+
+## Manipulations et destruction
+
+. . .
+
+```C
+void queue_enqueue(queue *fa, int val); // adds an element before the tail
+int queue_dequeue(queue *fa); // removes the head and returns stored value
+void queue_destroy(queue *fa); // dequeues everything into oblivion
+```
+
+# Enfilage
+
+## Deux cas différents:
+
+1. La file est vide (faire un dessin):
+
+. . .
+
+![Insertion dans une file d'attente
+vide.](./figs/fig_empty_queue_insert.png){width=40%}
+
+2. La file n'est pas vide (faire un dessin):
+
+. . .
+
+![Insertion dans une file d'attente
+non-vide.](./figs/fig_non_empty_queue_insert.png){width=70%}
+
+<!-- # Défilage -->
+
+<!-- Voici l'entête de la procédure: `int queue_extraire(queue* fa);` -->
+
+<!-- On commence par récupérer, la valeur en tête de file d'attente via l'appel `queue_tete(*fa);` -->
+
+<!-- Puis on met un pointeur temporaire sur l'élément en tête, avant de déplacer le pointeur de tête sur  l'élément suivant. -->    
+<!-- Finalement, on désalloue la mémoire -->
+
+<!-- ![Extraction d'une file d'attente](./figures/fig_queue_extract.png) -->
+
+<!-- Si la file d'attente n'avait qu'un seul élément, alors il faudrait mettre le pointeur `fa-­>debut` à `NULL`. -->   
+<!-- Dans ce cas, à la suite du point (3), le pointeur `fa-­>tete` se retrouve à `NULL`. On doit donc ajouter l'instruction : -->
+
+<!-- ```C -->
+<!--     if (NULL == fa­>tete) { -->
+<!--        fa­>debut = NULL; -->
+<!--     } -->
+<!-- ``` -->
diff --git a/slides/figs/fig_empty_queue_insert.png b/slides/figs/fig_empty_queue_insert.png
new file mode 100644
index 0000000000000000000000000000000000000000..62d73bdb4f2aaacb9060748b89575cb0ad1a6f4a
Binary files /dev/null and b/slides/figs/fig_empty_queue_insert.png differ
diff --git a/slides/figs/fig_non_empty_queue_insert.png b/slides/figs/fig_non_empty_queue_insert.png
new file mode 100644
index 0000000000000000000000000000000000000000..2d0c4aa785e63dee2b3c57c6643eab01b706aa49
Binary files /dev/null and b/slides/figs/fig_non_empty_queue_insert.png differ