aboutsummaryrefslogtreecommitdiff
path: root/position_stack.h
blob: fe93e8cab5548a07765b319d1005c23c86f9225b (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
#ifndef POSITION_STACK_H
#define POSITION_STACK_H

#define STACK_ERR_OVERFLOW 0xFFF01
#define STACK_ERR_UNDERFLOW 0xFFF02

struct Position
{
	int x;
	int y;
};

struct PositionStack
{
	int max_size;
	int top;
	struct Position *items;
};

struct PositionStack *create_pos_stack(int capacity);

void pos_stack_push(struct PositionStack *stack_pt, struct Position pos);

struct Position pos_stack_peek(struct PositionStack *stack_pt);

struct Position pos_stack_pop(struct PositionStack *stack_pt);

#endif