关于“中的问题19-2”的问题;Lisp“;温斯顿和霍恩

关于“中的问题19-2”的问题;Lisp“;温斯顿和霍恩,lisp,common-lisp,Lisp,Common Lisp,温斯顿和霍恩的《口齿不清》中的问题19-2 在深度优先搜索中,所有 队列中给定位置的部分路径 搜索中的点与 以一种简单的方式彼此交流:每个都是 由一个节点进行的扩展 队列中它后面的部分路径。 例如,队列可能看起来像 这样地: ((D C B A)(C B A)(B A)(A)) 然而,我不明白情况如何。例如,我得到了输出 例如: (depth-first 's 'f) queue: ((S)) (S) queue: ((A S) (D S)) (S A) queue: ((B A S)

温斯顿和霍恩的《口齿不清》中的问题19-2

在深度优先搜索中,所有 队列中给定位置的部分路径 搜索中的点与 以一种简单的方式彼此交流:每个都是 由一个节点进行的扩展 队列中它后面的部分路径。 例如,队列可能看起来像 这样地:
((D C B A)(C B A)(B A)(A))

然而,我不明白情况如何。例如,我得到了输出 例如:

(depth-first 's 'f) 
queue: ((S)) 
(S) 
queue: ((A S) (D S)) 
(S A) 
queue: ((B A S) (D A S) (D S)) 
(S A B) 
queue: ((C B A S) (E B A S) (D A S) (D S)) 
(S A B C) 
queue: ((E B A S) (D A S) (D S)) 
(S A B E) 
queue: ((D E B A S) (F E B A S) (D A S) (D S)) 
(S A B E D) 
queue: ((F E B A S) (D A S) (D S)) 
(S A B E F) 
在例行程序的开始处,我放置了一个打印语句:

(defun depth-first (start finish &optional 
                    (queue (list (list start)))) 
  (format t "~%queue: ~a" queue) 
  (cond ((endp queue) nil) 
        ((eq finish (first (first queue))) 
         (reverse (first queue))) 
        (t (depth-first 
            start 
            finish 
            (append (extend (first queue)) 
                    (rest queue)))))) 
在这种情况下,队列中没有部分路径是1的扩展 队列中部分路径后面的节点。 这是练习中的打印错误还是有输入错误 真的给他排队吗

参见Pascal Bourguignon