Priority Queue function declarations 更多...

Priority Queue function declarations
| typedef int(* pqueue_cmp_pri_f) (pqueue_pri_t next, pqueue_pri_t curr) |
| typedef size_t(* pqueue_get_pos_f) (void *a) |
callback functions to get/set the position of an element
| typedef pqueue_pri_t(* pqueue_get_pri_f) (void *a) |
callback functions to get/set/compare the priority of an element
| typedef unsigned long long pqueue_pri_t |
priority data type
| typedef void(* pqueue_print_entry_f) (FILE *out, void *a) |
debug callback function to print a entry
| typedef void(* pqueue_set_pos_f) (void *a, size_t pos) |
| typedef void(* pqueue_set_pri_f) (void *a, pqueue_pri_t pri) |
| void pqueue_change_priority | ( | pqueue_t * | q, |
| pqueue_pri_t | new_pri, | ||
| void * | d | ||
| ) |
move an existing entry to a different priority
| q | the queue |
| new_pri | the new priority |
| d | the entry |


| void pqueue_dump | ( | pqueue_t * | q, |
| FILE * | out, | ||
| pqueue_print_entry_f | |||
| ) |
dump the queue and it's internal structure

| void pqueue_free | ( | pqueue_t * | q | ) |
free all memory used by the queue
| q | the queue |

| pqueue_t* pqueue_init | ( | size_t | n, |
| pqueue_cmp_pri_f | cmppri, | ||
| pqueue_get_pri_f | getpri, | ||
| pqueue_set_pri_f | setpri, | ||
| pqueue_get_pos_f | getpos, | ||
| pqueue_set_pos_f | setpos | ||
| ) |
initialize the queue
| n | the initial estimate of the number of queue items for which memory should be preallocated |
| cmppri | The callback function to run to compare two elements This callback should return 0 for 'lower' and non-zero for 'higher', or vice versa if reverse priority is desired |
| setpri | the callback function to run to assign a score to an element |
| getpri | the callback function to run to set a score to an element |
| getpos | the callback function to get the current element's position |
| setpos | the callback function to set the current element's position |

| int pqueue_insert | ( | pqueue_t * | q, |
| void * | d | ||
| ) |
insert an item into the queue.
| q | the queue |
| d | the item |


| int pqueue_is_valid | ( | pqueue_t * | q | ) |
checks that the pq is in the right order, etc

| void* pqueue_peek | ( | pqueue_t * | q | ) |
access highest-ranking item without removing it.
| q | the queue |

| void* pqueue_pop | ( | pqueue_t * | q | ) |
pop the highest-ranking item from the queue.
| q | the queue |


| void pqueue_print | ( | pqueue_t * | q, |
| FILE * | out, | ||
| pqueue_print_entry_f | |||
| ) |
print the queue

| int pqueue_remove | ( | pqueue_t * | q, |
| void * | d | ||
| ) |
remove an item from the queue.
| q | the queue |
| d | the entry |

| size_t pqueue_size | ( | pqueue_t * | q | ) |
return the size of the queue.
| q | the queue |
