aboutsummaryrefslogtreecommitdiff
path: root/position_stack.c
diff options
context:
space:
mode:
authorHampus <hampus@hampusmat.com>2021-12-14 00:01:35 +0100
committerHampus <hampus@hampusmat.com>2021-12-14 00:01:35 +0100
commit88d8be06f3e5411db6faa59db12210b6079f7d21 (patch)
tree8e05fca5d76cb8734fc30e50297471ca72cdaa20 /position_stack.c
parentaf93edd8433634d82e855e9c9bcbca249a476977 (diff)
refactor: restructure project
Diffstat (limited to 'position_stack.c')
-rw-r--r--position_stack.c69
1 files changed, 0 insertions, 69 deletions
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 <stdio.h>
-#include <stdlib.h>
-
-// 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