Added queue structure

This commit is contained in:
2022-08-15 20:20:31 -05:00
parent bdb0b753a3
commit 5b959c9763
7 changed files with 125 additions and 11 deletions

53
include/queue.h Normal file
View File

@@ -0,0 +1,53 @@
#pragma once
struct queue_node_t;
/**
* @brief A last-in-first-out queue.
*
*/
struct queue_t
{
/**
* @brief The number of objects stored in this queue.
*
*/
unsigned int count;
/**
* @brief A link to the first node stored in this queue.
*
*/
struct queue_node_t *first;
/**
* @brief A link to the last node stored in this queue.
*
*/
struct queue_node_t *last;
};
/**
* @brief Inserts a new item at the end of the queue.
*
* @param queue
* @param ptr
*/
void queue_insert(struct queue_t *queue, void *ptr);
/**
* @brief Removes the next item from the queue and returns it.
*
* @param queue
* @return void*
*/
void *queue_get_next(struct queue_t *queue);
/**
* @brief Returns the next item on the queue without removing it.
*
* @param queue
* @return void*
*/
void *queue_peek(struct queue_t *queue);