diff --git a/Makefile b/Makefile deleted file mode 100644 index 8af50656ccfdde0951d485cb65837405e468ad0c..0000000000000000000000000000000000000000 --- a/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -CC=gcc -CFLAGS=-Wall -Wextra -pedantic -g -std=c11 -O3 -CFLAGS_ASAN=-fsanitize=address -fno-omit-frame-pointer -LDFLAGS=-lm -LDFLAGS_ASAN=-fsanitize=address -fno-omit-frame-pointer - -main: stack.o main.o - $(CC) -o $@ $^ $(CFLAGS) $(LDFLAGS) $(LDFLAGS_ASAN) - -%.o: %.c - $(CC) $(CFLAGS) $(CFLAGS_ASAN) -c $^ -o $@ - -clean: - rm -f *.o main diff --git a/main.c b/main.c deleted file mode 100644 index 722dd95a4de7cf960e3e459851a5afb493a993b0..0000000000000000000000000000000000000000 --- a/main.c +++ /dev/null @@ -1,20 +0,0 @@ -#include "stack.h" - -int main(){ - stack s; - int value = 13; - stack_init(&s); - - s.top += 1; - s.data[s.top] = value; - - s.top += 1; - s.data[s.top] = value+1; - - stack_pop(&s, &value); - - free(s.data); - s.data = NULL; - s.capacity = -1; - s.top = -1; -} \ No newline at end of file diff --git a/stack.c b/stack.c index 8ccafcfdf044a54c8d5519ff377fbb7d26f643eb..653cb8bbe52655aded1838fc4fa272fe94e105d7 100644 --- a/stack.c +++ b/stack.c @@ -1,33 +1,24 @@ -#include "stack.h" +#include <stdio.h> +#include <stdlib.h> +#include <assert.h> +#include <stdbool.h> -void stack_init(stack *s){ - s->top = -1; - s->capacity = DEFAULT_CAPACITY; - s->data = malloc(sizeof(int) * DEFAULT_CAPACITY); -} +#define DEFAULT_CAPACITY 4 -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]; - } - printf("peek : value %d, top : %d\n", s.data[s.top],s.top); -} +typedef struct _stack { + int *data; + int capacity; + int top; +} stack; // depile void stack_pop(stack *s, int *value){ - if (stack_is_empty(*s)){ - return; - } + assert(s->top>=0 && "Stcak is empty\n"); if (s->top == s->capacity/4){ s->capacity /= 2; } *value = s->data[s->top]; - printf("pop : %d, top : %d\n", s->data[s->top],s->top); s->top -= 1; -} +} \ No newline at end of file diff --git a/stack.h b/stack.h deleted file mode 100644 index c727cea29170a8185c9476f0ed743512fc873ce6..0000000000000000000000000000000000000000 --- a/stack.h +++ /dev/null @@ -1,21 +0,0 @@ -#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); - -void stack_pop(stack *s, int *value); - -#endif