typedef struct queue *Queue; typedef int Item; /** Create a new, empty Queue */ Queue QueueNew(void); /** Free memory allocated to a Queue */ void QueueFree(Queue q); /** Add an item to the end of a Queue */ void QueueEnqueue(Queue q, Item it); /** Remove an item from the front of a Queue Assumes that the Queue is not empty */ Item QueueDequeue(Queue q); /** Get the number of items in a Queue */ int QueueSize(Queue q); /** Get the item at the front of a Queue Assumes that the Queue is not empty */ Item QueuePeek(Queue q);