#include "stack.h" #include void stack_init(t_stack& stack, const int size) { if (stack.data != nullptr) free(stack.data); stack.data = (unsigned char*)malloc(size); stack.max = size; stack.top = -1; } const bool stack_isempty(t_stack& stack) { return stack.top == -1; } const bool stack_isfull(t_stack& stack) { return stack.top == stack.max; } void stack_push(t_stack& stack, const unsigned char value) { if (!stack_isfull(stack)) { stack.data[++stack.top] = value; } } const unsigned char stack_pop(t_stack& stack) { if (!stack_isempty(stack)) { return stack.data[stack.top--]; } } const unsigned char stack_peek(t_stack& stack) { return stack.data[stack.top]; } void stack_delete(t_stack& stack) { free(stack.data); }