#ifndef STACK_H #define STACK_H #include typedef struct _stack_node { int data; struct _stack_node *next; } StackNode; StackNode *create_stack_node(int data); StackNode *push(StackNode *top, int data); StackNode *pop(StackNode *top, int *data); bool peek_stack(StackNode *top, int *data); bool is_empty_stack(StackNode *top); int size_stack(StackNode *top); int size_stack_rec(StackNode *top); void destroy_stack(StackNode *top); void destroy_stack_rec(StackNode *top); void print_stack(StackNode *top); void print_stack_rec(StackNode *top); void print_stack_inverso_rec(StackNode *top); StackNode *invert_stack_rec(StackNode *top); #endif