SICP 习题 2.28 的本质其实是树的遍历
题目要求我们实现一个叫fringe的过程,fringe的英文意思是边缘,花边的意思,题目的意思其实就是要我们遍历一棵树,然后以列表的形式返回这棵树的所有叶子。
该过程的实现和上面的deep-reverse差不多,都是遍历元素,如果元素是一个列表则递归调用fringe进入,如果元素是一个简单元素则直接组合起来。
代码如下:
(define (fringe input-list)
(if (null? input-list)
'()
(append (if (list? (car input-list))
(fringe (car input-list))
(list (car input-list)))
(fringe (cdr input-list)))))

本文解析了SICP习题2.28,实现了一个名为fringe的过程,用于遍历树结构并返回所有叶子节点组成的列表。通过递归方式处理列表和简单元素,展示了树遍历的基本思路。
解题总结:树状列表的遍历&spm=1001.2101.3001.5002&articleId=39910385&d=1&t=3&u=f146201b9cc54f7c912f9f045fb719eb)
1844

被折叠的 条评论
为什么被折叠?



