27 lines
571 B
C
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
|