1
1
mirror of https://github.com/theoludwig/libcproject.git synced 2024-12-11 21:13:00 +01:00
libcproject/lib/stack.h

46 lines
691 B
C
Raw Normal View History

#ifndef __LIBCPROJECT_STACK__
#define __LIBCPROJECT_STACK__
2023-01-05 19:28:05 +01:00
2023-01-07 19:38:01 +01:00
#include <stdio.h>
2023-01-05 19:28:05 +01:00
#include <stdlib.h>
2023-06-25 15:07:34 +02:00
#include "types.h"
/**
* @brief Stack structure => LIFO (Last In First Out).
* @since v1.0.0
*/
2023-01-05 19:28:05 +01:00
struct stack {
struct stack_node *first;
size_t length;
};
/**
* @brief Stack node structure.
* @since v1.0.0
*/
2023-01-05 19:28:05 +01:00
struct stack_node {
void *data;
struct stack_node *next;
};
/**
* @brief Stack initialization.
* @since v1.0.0
*/
2023-01-05 19:28:05 +01:00
struct stack *stack_initialization();
/**
* @brief Push data to stack.
* @since v1.0.0
*/
2023-01-05 19:28:05 +01:00
void stack_push(struct stack *stack, void *data);
/**
* @brief Pop data from stack.
* @since v1.0.0
*/
2023-01-05 19:28:05 +01:00
void *stack_pop(struct stack *stack);
#endif