diff options
Diffstat (limited to 'src/01/06/min_stack.c')
| -rw-r--r-- | src/01/06/min_stack.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/01/06/min_stack.c b/src/01/06/min_stack.c index 816b46d..7567cd6 100644 --- a/src/01/06/min_stack.c +++ b/src/01/06/min_stack.c @@ -38,6 +38,15 @@ void push(Stack *self, int data) { self->size++; } +void each(Node *head, Visitor block) { + Node *tmp = head; + + while(tmp) { + (*block)(tmp); + tmp = tmp->next; + } +} + int min(Stack *self) { if(self->min) return self->min->data; @@ -73,3 +82,15 @@ int pop(Stack *self) { free(current); return data; } + +void print_node(Node *node) +{ + printf("[%d]", node->data); +} + +void inspect(Stack *stack) +{ + printf("\t"); + each(stack->head, &print_node); + printf("\n"); +} |
