summaryrefslogtreecommitdiff
path: root/src/01/01b/stack.h
blob: 752f865c0debd03d1a6a794b0762884d7d873f7d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/**
 * A singly linked list node node
 */
struct node {
  int data;
  struct node *next;
};

typedef struct node Node;

/**
 * A queue
 */
typedef struct {
  Node *head;
  int size;
} Queue;

/**
 * A stack
 */
typedef struct {
  Queue *q1;
} Stack;

Stack *initialize(void);
void push(Stack *stack, int data);
int pop(Stack *stack);
int size(Stack *stack);
void destroy(Stack *stack);