Blob


1 ;; weiqun zhang's solution
3 (define (make-queue)
4 (let ((front-ptr '())
5 (rear-ptr '()))
6 (define (prt-q)
7 (newline)
8 (display front-ptr))
9 (define (emp-q?)
10 (null? front-ptr))
11 (define (fro-q)
12 (if (emp-q?)
13 (error "FRONT called with an empty queue")
14 (car front-ptr)))
15 (define (ins-q! item)
16 (let ((new-pair (cons item '())))
17 (cond ((emp-q?)
18 (set! front-ptr new-pair)
19 (set! rear-ptr new-pair))
20 (else
21 (set-cdr! rear-ptr new-pair)
22 (set! rear-ptr new-pair)))))