【发布时间】:2012-01-26 20:54:16
【问题描述】:
这里是一些关于删除队列中的项目的代码。我不明白为什么最后一个词,队列在那里。我确定我错过了一些简单的东西 - 有人可以澄清一下吗?
(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))
【问题讨论】:
-
只是用来指定返回值;排队
标签: data-structures lisp scheme queue