struct queue; /* return an empty queue */ struct queue *init ( ); /* return true if the queue is empty */ int isEmpty (struct queue *q); /* add an element to the end of the queue */ struct queue * enqueue (int val, struct queue *q); /* remove the front of the queue; do nothing if the queue is empty */ struct queue * dequeue (struct queue *q); /* return the front of the queue; undefined result if the queue is empty */ int front (struct queue *q); /* print the queue */ void print (struct queue *q);