diff --git a/stack.c b/stack.c index 222323ad858553aa6c7aff4e90fd664a9712fb85..efeb060c6d3c922200fb3c3508b26ad33ca804ad 100644 --- a/stack.c +++ b/stack.c @@ -17,6 +17,20 @@ void stack_peek(stack s, int *value){ } } +void stack_print(const stack s) { + //TODO: replace if statement with following as soon as relevant function is implemented + //if (!stack_is_empty()) { + if (s.top >= 0) { + printf(" TOP\n--------------------\n"); + for (int* spot = s.data + s.top; spot >= s.data; --spot) { + printf("%8d | %12d\n", spot - s.data, *spot); + } + printf("--------------------\n BOTTOM\n"); + } else { + printf("STACK EMPTY\n"); + } +} + void stack_clone(stack s, stack *clone) { clone->top = s.top; clone->capacity = s.capacity; @@ -24,4 +38,5 @@ void stack_clone(stack s, stack *clone) { for (int i = 0; i <= s.top && i < s.capacity; i++) { clone->data[i] = s.data[i]; } -} \ No newline at end of file +} + diff --git a/stack.h b/stack.h index f1bd309920ef229aa8ab3b15325938e0102ff80f..66056e2b928af4f82d1e7dab3c3e397ca0dc9047 100644 --- a/stack.h +++ b/stack.h @@ -12,4 +12,6 @@ void stack_init(stack *stack); void stack_peek(stack s, int *value); void stack_clone(stack s, stack *clone); +void stack_print(const stack s); + #endif