diff --git a/CMakeLists.txt b/CMakeLists.txt index de408ea..00648db 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,4 +4,4 @@ project(ISENAlgoC C) set(CMAKE_C_STANDARD 11) add_executable(ISENAlgoC - TP10/ex1/list.c TP10/ex1/stackList.c TP10/ex1/main.c) + TP10/ex1/stackArray.c TP10/ex1/main.c) diff --git a/TP10/ex1/main.c b/TP10/ex1/main.c index 6de951a..e5890b8 100644 --- a/TP10/ex1/main.c +++ b/TP10/ex1/main.c @@ -1,6 +1,6 @@ #include -#include "stackList.h" +#include "stackArray.h" int main() { struct Stack* testStack; //1-------------------------------------------------------------------------------------------------------------------------------------------------- @@ -48,10 +48,7 @@ int main() { push(testStack, 69, &valid); push(testStack, 100, &valid); push(testStack, 69, &valid); - push(testStack, 100, &valid); - push(testStack, 69, &valid); - push(testStack, 100, &valid); - push(testStack, 69, &valid); + push(testStack, 100, &valid); push(testStack, 69, &valid); push(testStack, 63636, &valid); diff --git a/TP10/ex1/stackArray.c b/TP10/ex1/stackArray.c index f695693..53a415c 100644 --- a/TP10/ex1/stackArray.c +++ b/TP10/ex1/stackArray.c @@ -27,14 +27,15 @@ int top(struct Stack* s, bool* valid) { *valid = false; } else { *valid = true; - return s->elems[stackSize(s) - 1]; + return s->elems[s->size-1]; } } int pop(struct Stack* s, bool* valid){ - top(s,valid); - s-> elems[stackSize(s) - 1] = 0; - s-> size--; + int result = top(s,valid); + s-> elems[s->size-1] = 0; + s-> size= s-> size -1; + return result; } unsigned int stackSize(struct Stack* s){ @@ -46,12 +47,12 @@ bool isStackEmpty(struct Stack* s){ } void printStack(struct Stack* s) { - if (isStackEmpty(s) == 1) { + if (isStackEmpty(s) == 1 ) { printf("NULL <– top"); } else{ - printf("%d <– top\n",s->elems[0]); - for (int i = 1; i < stackSize(s); i++){ + printf("%d <– top\n",s->elems[s->size-1]); + for (int i = stackSize(s)-2; i >= 0; i--){ printf("%d\n",s->elems[i]); } } @@ -59,4 +60,5 @@ void printStack(struct Stack* s) { void deleteStack(struct Stack** s){ free(*s); + *s = NULL; } \ No newline at end of file