1 /* queue.h */ 2 3 typedef struct _Queue Queue; 4 typedef void *QueueValue; 5 6 Queue *queue_new(void); 7 void queue_free(Queue *queue); 8 9 int queue_push_head(Queue *queue, QueueValue data); 10 QueueValue queue_pop_head(Queue *queue); 11 QueueValue queue_peek_head(Queue *queue); 12 13 int queue_push_tail(Queue *queue, QueueValue data); 14 QueueValue queue_pop_tail(Queue *queue); 15 QueueValue queue_peek_tail(Queue *queue); 16 17 int queue_is_empty(Queue *queue); 18