【发布时间】:2016-11-04 07:50:38
【问题描述】:
(define-struct school (name students))
;; An SchoolChart is a (make-school Str (listof SchoolChart))
;; names are unique
我有一张学校图表说
(define s-chart (make-school "Tom" (list
(make-school "James" empty)
(make-school "Claire"
(make-school "David" empty)
(make-school "Travis" empty))
(make-school "Timmy" empty))))
这是一棵通用树,比如说我定义了一个函数
(define (find-name name school)) ;;produces true if found/false if not.
如何进行递归?这个具体情况很好,但是每个孩子可以有无限个孩子吗?我只是需要一个提示
【问题讨论】:
-
如果你正在搜索你检查当前节点是否是你的答案,否则你检查每个子节点是否使用递归,当没有节点离开并且没有找到时你返回一个错误或其他东西来指示失败。 Ps:对于无限的孩子递归不会有帮助,所以不能那样。如果您指的是循环,那么您需要一个结构来了解访问过的节点。