编写 n 个类似函数(maptree f t)
,返回通过将函数f
应用于二叉树的每个条目而生成的树t
。(就像map)由于树是一种数据抽象,所以只允许对树进行以下操作:(entry t) (right-branch t) (left-branch t) (make=tree entry left right), and (empty-tree? t)
. 您可以使用预定义的常量the-empty-tree
。
例子:
(define tree
(make-tree 10 (make-tree 5 the-empty-tree the-empty-tree)
(make-tree 12 the-empty-tree the-empty-tree)))
tree
(10 (5 () ())(12 () ()))
(maptree square tree)
(100 (25 () ())(144 () ()))