master
 1struct node {
 2  int data;
 3  struct node *next;
 4};
 5
 6typedef struct node Node;
 7
 8typedef struct {
 9  Node *head;
10  Node *min;
11  int size;
12} Stack;
13
14typedef void (*Visitor)(Node *);
15
16Stack *initialize(void);
17void push(Stack *self, int data);
18int pop(Stack *self);
19int size(Stack *self);
20int min(Stack *self);
21void each(Node *head, Visitor block);
22void inspect(Stack *stack);