|
C Container Collection (CCC)
|
#include <private_priority_queue.h>

A node in the priority queue. The child is technically a left child but the direction is not important. The next and prev pointers represent sibling nodes in a circular doubly linked list in the child ring. When a node loses a merge and is sent down to be another nodes child it joins this sibling ring of nodes. The list is doubly linked and we have a parent pointer to keep operations like delete min, erase, and update fast.
Data Fields | |
| struct CCC_Priority_queue_node * | child |
| struct CCC_Priority_queue_node * | next |
| struct CCC_Priority_queue_node * | prev |
| struct CCC_Priority_queue_node * | parent |
| struct CCC_Priority_queue_node* CCC_Priority_queue_node::child |
The left child of this node.
| struct CCC_Priority_queue_node* CCC_Priority_queue_node::next |
The next sibling in the sibling ring or self.
| struct CCC_Priority_queue_node* CCC_Priority_queue_node::parent |
A parent or NULL if this is the root node.
| struct CCC_Priority_queue_node* CCC_Priority_queue_node::prev |
The previous sibling in the sibling ring or self.