priority_queue.h¶
A simple priority queue.
-
PRIORITY_QUEUE_NODE_INIT
¶ Static initializer for priority_queue_node_t.
1
{ NULL, 0, 0 }
-
PRIORITY_QUEUE_INIT
¶ Static initializer for priority_queue_t.
1
{ NULL }
-
struct priority_queue_node
priority_queue_node_t
¶ data type for priority queue nodes
-
void
priority_queue_node_init
(priority_queue.h::priority_queue_node_t
* priority_queue_node)¶ Initialize a priority queue node object.
For initialization of variables use PRIORITY_QUEUE_NODE_INIT instead. Only use this function for dynamically allocated priority queue nodes.
Parameters
priority_queue_node: pre-allocated priority_queue_node_t object, must not be NULL.
-
void
priority_queue_init
(priority_queue_t * priority_queue)¶ Initialize a priority queue object.
For initialization of variables use PRIORITY_QUEUE_INIT instead. Only use this function for dynamically allocated priority queues.
Parameters
priority_queue: pre-allocated priority_queue_t object, must not be NULL.
-
priority_queue.h::priority_queue_node_t
*priority_queue_remove_head
(priority_queue_t * root)¶ remove the priority queue’s head
Parameters
root: the queue’s root Return values
- the old head
-
void
priority_queue_add
(priority_queue_t * root,priority_queue.h::priority_queue_node_t
* new_obj)¶ insert
new_obj
intoroot
based on its priorityThe new object will be appended after objects with the same priority.
Parameters
root: the queue’s root new_obj: the object to prepend
-
void
priority_queue_remove
(priority_queue_t * root,priority_queue.h::priority_queue_node_t
* node)¶ remove
node
fromroot
Parameters
root: the priority queue’s root node: the node to remove
-
void
priority_queue_print
(priority_queue_t * root)¶ print the data and priority of every node in the given priority queue
Note
requires
nhdp.h::ENABLE_DEBUG
to be set to 1 for this file
-
void
priority_queue_print_node
(priority_queue_t * root)¶ print the data, priority, and successor of a given node
Note
requires
nhdp.h::ENABLE_DEBUG
to be set to 1 for this file
-
struct
priority_queue_node
¶ data type for priority queue nodes
-
struct priority_queue_node *
next
¶ next queue node
-
uint32_t
priority
¶ queue node priority
-
unsigned int
data
¶ queue node data
-
struct priority_queue_node *
-
struct
priority_queue_t
¶ data type for priority queues
-
priority_queue.h::priority_queue_node_t
*first
¶ first queue node
-