From 88d8be06f3e5411db6faa59db12210b6079f7d21 Mon Sep 17 00:00:00 2001 From: Hampus Date: Tue, 14 Dec 2021 00:01:35 +0100 Subject: refactor: restructure project --- position_stack.c | 69 -------------------------------------------------------- 1 file changed, 69 deletions(-) delete mode 100644 position_stack.c (limited to 'position_stack.c') diff --git a/position_stack.c b/position_stack.c deleted file mode 100644 index 3d546b8..0000000 --- a/position_stack.c +++ /dev/null @@ -1,69 +0,0 @@ -#include "position_stack.h" -#include -#include - -// Error handler for stack errors -void stack_error(int err) -{ - switch (err) - { - case STACK_ERR_OVERFLOW: - printf("Error: Stack overflow\nBe kind and report this problem."); - break; - case STACK_ERR_UNDERFLOW: - printf("Error: Stack underflow\nBe kind and report this problem."); - break; - } - - exit(1); -} - -// Creates a new stack -struct PositionStack *create_pos_stack(int capacity) -{ - struct PositionStack *stack_pt = malloc(sizeof(struct PositionStack)); - - stack_pt->max_size = capacity; - stack_pt->top = -1; - stack_pt->items = malloc(sizeof(struct Position) * capacity); - - return stack_pt; -} - -// Adds a new item to a stack -void pos_stack_push(struct PositionStack *stack_pt, struct Position pos) -{ - // Avoid a overflow by checking if the stack is full - if (stack_pt->top == stack_pt->max_size - 1) - { - stack_error(STACK_ERR_OVERFLOW); - } - - // Add an element and increase the top index - stack_pt->items[++stack_pt->top] = pos; -} - -// Returns the topmost item of a stack -struct Position pos_stack_peek(struct PositionStack *stack_pt) -{ - // Avoid a underflow by checking if the stack is empty - if (stack_pt->top == -1) - { - stack_error(STACK_ERR_UNDERFLOW); - } - - return stack_pt->items[stack_pt->top]; -} - -// Deletes the topmost item of a stack -struct Position pos_stack_pop(struct PositionStack *stack_pt) -{ - // Avoid a underflow by checking if the stack is empty - if (stack_pt->top == -1) - { - stack_error(STACK_ERR_UNDERFLOW); - } - - // Decrease the stack size by 1 and return the popped element - return stack_pt->items[stack_pt->top--]; -} \ No newline at end of file -- cgit v1.2.3-18-g5258