5 #ifndef _PRIORITY_QUEUE_H_
6 #define _PRIORITY_QUEUE_H_
14 typedef struct _PriorityQueue {
20 int32_t (*push) (
struct _PriorityQueue*, Item);
24 int32_t (*top) (
struct _PriorityQueue*, Item*);
28 int32_t (*pop) (
struct _PriorityQueue*);
32 int32_t (*size) (
struct _PriorityQueue*);
36 int32_t (*set_compare) (
struct _PriorityQueue*, int32_t (*) (Item, Item));
40 int32_t (*set_destroy) (
struct _PriorityQueue*, void (*) (Item));
int32_t PriorityQueueSetDestroy(PriorityQueue *self, void(*pFunc)(Item))
Set the custom item resource clean method.
int32_t PriorityQueueSize(PriorityQueue *self)
Return the number of stored items.
struct _PriorityQueueData PriorityQueueData
PriorityQueueData is the data type for the container private information.
int32_t PriorityQueuePush(PriorityQueue *self, Item item)
Push an item onto the queue.
int32_t PriorityQueuePop(PriorityQueue *self)
Delete item from top of the queue.
The implementation for priority queue.
int32_t PriorityQueueInit(PriorityQueue **ppObj)
The constructor for PriorityQueue.
void PriorityQueueDeinit(PriorityQueue **ppObj)
The destructor for PriorityQueue.
int32_t PriorityQueueTop(PriorityQueue *self, Item *pItem)
Retrieve item from top of the queue.
PriorityQueueData * pData
The container private information.
int32_t PriorityQueueSetCompare(PriorityQueue *self, int32_t(*pFunc)(Item, Item))
Set the custom item comparison method.