COMP 320: Programming Languages
Stack and Queue Functions in Scheme
; Stack functions
(define (push elt ls) (cons elt ls))
(define (top ls) (car ls))
(define (pop ls) (cdr ls))
; Queue functions
(define (enqueue elt ls) (cons elt ls))
(define (peek ls)
(cond
((empty? ls) '())
((empty? (cdr ls)) (car ls))
(else (peek (cdr ls)))
))
(define (dequeue ls)
(cond
((empty? ls) '())
((empty? (cdr ls)) '())
(else (cons (car ls) (dequeue (cdr ls))))
))