From 56f989db0c8112e41c7eefdafe7a8eef93445cf6 Mon Sep 17 00:00:00 2001 From: "ines.maya" <ines.maya@etu.hesge.ch> Date: Sat, 27 Nov 2021 11:30:29 +0100 Subject: [PATCH] premiere version de pop, a verifier --- stack.c | 27 +++++++++++++++++++++++++++ stack.h | 9 +++++++++ 2 files changed, 36 insertions(+) create mode 100644 stack.c diff --git a/stack.c b/stack.c new file mode 100644 index 0000000..b5eaae2 --- /dev/null +++ b/stack.c @@ -0,0 +1,27 @@ +#include "stack.h" + +void stack_init(stack *s){ + s->top = -1; + s->capacity = DEFAULT_CAPACITY; + s->data = malloc(sizeof(int) * DEFAULT_CAPACITY); +} + +bool stack_is_empty(stack s){ + return s.top == -1; +} + +void stack_peek(stack s, int *value){ + if (!stack_is_empty(s)) { + *value = s.data[s.top]; + } +} + +// depile +void stack_pop(stack *s, int *val){ + if (stack_is_empty(*s)){ + return; + } + *val = s->data[s->top]; + s->top -= 1; + printf("pop : %d, top : %d\n", s->data[s->top],s->top); +} diff --git a/stack.h b/stack.h index 9796be5..3d09d4b 100644 --- a/stack.h +++ b/stack.h @@ -1,10 +1,19 @@ #ifndef _STACK_H_ #define _STACK_H_ +#include <stdio.h> +#include <stdlib.h> +#include "stdbool.h" + +#define DEFAULT_CAPACITY 4 + typedef struct _stack { int *data; int capacity; int top; } stack; +void stack_init(stack *s); +void stack_peek(stack s, int *value); + #endif -- GitLab