Added queue structure
This commit is contained in:
53
include/queue.h
Normal file
53
include/queue.h
Normal 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);
|
||||
|
||||
Reference in New Issue
Block a user