aoc-2021/src/stack.h

27 lines
571 B
C

//
// Created by joey on 12/11/21.
//
#ifndef AOC_2021_STACK_H
#define AOC_2021_STACK_H
#include <stdint.h>
#include <stddef.h>
typedef enum {
STACK_OK,
STACK_FULL = -1,
STACK_EMPTY = -2,
} stack_ret_t;
typedef struct {
void * data;
int top_of_stack;
size_t max_data_size;
size_t elem_size;
} stack_t;
stack_ret_t stack_init(stack_t * stack, void * data, size_t max_data_size, size_t element_size);
stack_ret_t stack_push(stack_t * stack, void * element);
stack_ret_t stack_pop(stack_t * stack, void * store_to);
#endif //AOC_2021_STACK_H