From 4396c3e6bdbe070ef8a4c58c92dcd28f144bde75 Mon Sep 17 00:00:00 2001
From: Orestis <orestis.malaspinas@pm.me>
Date: Thu, 11 Nov 2021 22:25:47 +0100
Subject: [PATCH] added unsure stack

---
 slides/cours_8.md | 80 ++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 79 insertions(+), 1 deletion(-)

diff --git a/slides/cours_8.md b/slides/cours_8.md
index 0323e6f..62a4999 100644
--- a/slides/cours_8.md
+++ b/slides/cours_8.md
@@ -331,5 +331,83 @@ mémoire).
 
 . . .
 
-Hé oui vous avez deviner: un tableau!
+Et oui vous avez deviner: un tableau!
+
+## La structure: de quoi avons-nous besoin (pile de taille fixe)?
+
+. . .
+
+```C
+#define MAX_CAPACITY 500
+typedef struct stack_ {
+    int data[MAX_CAPACITY]; // les données
+    int top;                // indice du sommet
+} stack;
+```
+
+# Les piles (4/N)
+
+## Initialisation
+
+. . .
+
+```C
+void stack_init(stack *s) {
+    s->top = -1;
+}
+```
+
+## Est vide?
+
+. . .
+
+```C
+bool stack_is_empty(stack s) {
+    return s.top == -1;
+} 
+```
+
+## Empiler (ajouter un élément au sommet)
+
+. . .
+
+```C
+void stack_push(stack *s, int val) {
+    stack->top += 1;
+    stack->data[stack->top] = val;
+}
+```
+
+# Les piles (5/N)
+
+## Dépiler (enlever l'élément du sommet)
+
+. . .
+
+```C
+int stack_pop(stack *s) {
+    stack->top -= 1;
+    return stack->data[stack->top+1];
+}
+```
+
+## Jeter un oeil (regarder le sommet)
+
+. . .
+
+```C
+int stack_peek(stack *s) {
+    return stack->data[stack->top];
+}
+```
+
+## Voyez-vous des problèmes potentiels avec cette implémentation?
+
+. . .
+
+* Empiler avec une pile pleine.
+* Dépiler avec une pile vide.
+* Jeter un oeil au sommet d'une pile vide.
+
+
 
-- 
GitLab