2012-01-26 40 views
1

以下是刪除隊列中的項目的一些代碼。我不明白爲什麼最後一個字,隊列在那裏。我確信我缺少一些簡單的東西 - 有人可以澄清嗎?瞭解計劃中的隊列

(define (delete-queue! queue) 
    (cond ((empty-queue? queue) 
     (error "DELETE! called with an empty queue" queue)) 
     (else 
     (set-front-ptr! queue (cdr (front-ptr queue))) 
     queue))) 

^最後一行是我的問題所在;爲什麼在那裏排隊?只要front-ptr設置爲front-ptr的cdr,是否不需要排隊隊列中的第一個元素?

下面是一些上面定義的函數定義:

(define (front-ptr queue) (car queue)) 
(define (rear-ptr queue) (cdr queue)) 
(define (set-front-ptr! queue item) (set-car! queue item)) 
(define (set-rear-ptr! queue item) (set-cdr! queue item)) 
+0

它只是用來指定返回值;排隊 – zallarak

回答

3

它使函數返回隊列。它看起來並不需要移除第一個項目,不需要。也許這對於調用函數的代碼來說很方便。

+0

謝謝!這是我相信的。 – zallarak