A queue is a list where elements can be added to both the front
and rear, and removed from the front (i.e., they are what are often
called dequeues). A queue may also be used like a stack.
— Function: make-queue
Returns a new, empty queue.
— Function: queue? obj
#t if obj is a queue.
— Function: queue-empty? q
#t if the queue q is empty.
— Procedure: queue-push! q datum
Adds datum to the front of queue q.
— Procedure: enqueue! q datum
Adds datum to the rear of queue q.
— Procedure: dequeue! q
— Procedure: queue-pop! q
Both of these procedures remove and return the datum at the front of
queue-pop! is used to suggest that the queue is
being used like a stack.
All of the following functions raise an error if the queue q
— Procedure: dequeue-all! q
Removes and returns (the list) of all contents of queue q.
— Function: queue-front q
Returns the datum at the front of the queue q.
— Function: queue-rear q
Returns the datum at the rear of the queue q.