Instead of representing a queue as a pair of pointers, we can build a queue as a procedure with local state. The local state will consist of pointers to the beginning and the end of an ordinary list. Thus, the
procedure will have the form
(define (make-queue) (let ((front-ptr ...) (rear-ptr ...)) <definitions of internal procedures> (define (dispatch m) ...) dispatch))
Complete the definition of
and provide implementations of the queue operations using this representation.
There are no comments yet.
You must log in to post a comment.Login
(define q (make-queue)) ((q 'insert-queue!) 'a) (check-equal? (q 'front-queue) 'a) ((q 'insert-queue!) 'b) (check-equal? (q 'front-queue) 'a) (q 'delete-queue!) (check-equal? (q 'front-queue) 'b)