#include "jval.h" typedef void *Queue; extern Queue new_queue(); /* allocates an empty queue. */ extern void queue_enqueue(Queue q, Jval jv); /* puts a new piece of data, which is the Jval jv, into the queue. */ extern Jval queue_dequeue(Queue q); /* returns the first item in the queue, and at the same time removes that object from the queue. */ extern int queue_empty(Queue q); /* returns 1 if the queue is empty; 0 otherwise */ extern int queue_size(Queue q); /* returns the number of elements in the queue */