(define enqueue! (lambda (queue new-item) (let ((length (queue-length queue)) (start (queue-start queue)) (cells (queue-cells queue))) (if (= length (vector-length cells)) (begin (enlarge-queue! queue) (enqueue! queue new-item)) (begin ; maintain representation invariant (vector-set! cells (remainder (+ start length) (vector-length cells)) new-item) (set-queue-length! queue (+ length 1)) queue)))))Writing dequeue is Exercise 13.11.