typedef struct _stack_element { void *content; struct _stack_element *next; } stack_element; typedef struct { stack_element *first; unsigned nb_values; } stack; stack *stack_new(void); void stack_free(stack *); int stack_push(stack *, void *); void *stack_pop(stack *); void *stack_top(stack *); unsigned stack_size(stack *); int stack_is_empty(stack *);