Skip to content

Instantly share code, notes, and snippets.

@SilverRainZ
Created January 9, 2016 15:00
Show Gist options
  • Save SilverRainZ/b3246fb9b7868bcae8b7 to your computer and use it in GitHub Desktop.
Save SilverRainZ/b3246fb9b7868bcae8b7 to your computer and use it in GitHub Desktop.
(define (make-queue)
(cons '() '()))
(define (enqueue! queue obj)
(let ((lobj (cons obj '())))
(if (null? (car queue))
(begin
(set-car! queue lobj)
(set-cdr! queue lobj))
(begin
(set-cdr! (cdr queue) lobj)
(set-cdr! queue lobj)))
(car queue)))
(define (dequeue! queue)
(let ((obj (car (car queue))))
(set-car! queue (cdr (car queue)))
obj))
(define q (make-queue))
;Value: q
(enqueue! q 'a)
;Value 12: (a)
(enqueue! q 'b)
;Value 12: (a b)
(enqueue! q 'c)
;Value 12: (a b c)
(dequeue! q)
;Value: a
q
;Value 13: ((b c) c)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment