问题描述
我正在进行球拍编程,我完成了以下任务:
-
您应该定义一个结构节点,其中包含以下字段:值,左,中,右。该结构表示树结构中的节点。这些字段包含分别存储在节点,左子树,中间子树和右子树中的值。如果子树不存在,则相应的字段应包含一个emptyNode,如下所述。
(struct emptyNode()#:透明)
例如:
(emptyNode)
将代表一棵没有元素的树,并且
(节点5(emptyNode)(emptyNode)(emptyNode))
代表一棵在根部包含5个子树而没有子树的树。
您必须按照指定的名称命名结构和字段(否则我们的测试将失败)。
- 编写一个函数treeFold,它将一个函数f,一个初始值,初始值和一个树结构tree作为参数。然后,它将产生一个单个值,该值是使用f折叠树中的值的结果(以该顺序使用左,中和右子树)。注意f是一个带有两个参数的函数。第一个参数是树中的值,第二个参数是部分累加的结果。
这是我的尝试:
(define (treeFold f initial tree)
(cond [(emptyNode? tree)
(f initial 0)]
[else (f (node-value tree) (f (treeFold f (treeFold f (treeFold f initial (node-left tree)) (node-middle tree)) (node-right tree))))]))
我不知道为什么这是错的。谁能帮助我解决问题,或者错误在哪里? 谢谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)