/* queue.h Pedro Flynn - pflynn@microsoftsucks.org */ #ifndef QUEUE_H #define QUEUE_H #include #include typedef struct QueueElmt_{ void* qe_data; struct QueueElmt_* qe_next; } QueueElmt; typedef struct Queue_{ int q_size; QueueElmt* q_first; QueueElmt* q_last; } Queue; Queue* queue_create(); int queue_enqueue(Queue* queue,void* data); int queue_dequeue(Queue* queue,void** data); void queue_print(Queue* queue); int queue_empty(Queue* queue); int queue_destroy(Queue* queue); #define QUEUE_SIZE(queue) ((queue)->q_size) #define QUEUE_PEEK(queue) ((queue)->q_first) #define QUEUE_DATA(queueelement) ((queueelement)->qe_data) #endif