#ifndef STACK_H_ #define STACK_H_ #include #include "structs.h" #define STACK_INITIAL_CAPACITY 4096 #define STACK_SIZE_COEFFICIENT 2 struct PositionStack_s { Position *arr; /* The array with all the values */ size_t capacity; size_t top; /* Shows where the top of the stack is */ }; typedef struct PositionStack_s PositionStack; PositionStack ps_new(void); /* Returns an empty position stack */ int ps_push(PositionStack *ps, Position pos); /* Returns -1 if failed to realloc() */ Position ps_pop(PositionStack *ps); Position ps_peek(PositionStack ps); void ps_free(PositionStack ps); #endif /* STACK_H_ */