aboutsummaryrefslogtreecommitdiffstats
path: root/stack.h
blob: b4319ecdb4fa1d45f858a3e818db7362c64c10b0 (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
31
32
33
34
35
36
37
#include <stdlib.h>
#include <stdio.h>
#include "errorhandler.h"

#ifndef STACK_H
#define STACK_H

typedef int stackitem;

typedef struct {
    int size;
    int maxsize;
    stackitem* start;
    errorhandler errorhandler;
} stack;

stack* stack_new(errorhandler errorhandler);

void stack_free(stack* s);

stackitem stack_pop(stack* s);

stackitem stack_peek(stack* s);

void stack_push(stack *s, stackitem si);

int stack_depth(stack *s);

void stack_tostringappend(stack* s, int sbmaxlen, char* sb);

void stack_roll(stack *s);

void stack_pick(stack *s);

void stack_clear(stack *s);

#endif