[英]Tree sorting function in Scheme
我在这个问题上苦苦挣扎了两天多了,但仍然无法解决。 我必须在SCHEME中编写一个函数,该函数接受树中的列表并按排序顺序显示项目。
我定义树的方式是'(6(left ...)(right ...))
我选择树的功能:
(define (tree-sort tree)
(cond ((null? tree) '())
((> (car tree) (cadr tree))
(tree-sort (cadr tree)))
(else
(tree-sort (caddr tree))))
)
因此,我想我也应该具有对最深入列表进行排序的功能? 我真的不明白,这是我最后一次不得不处理计划。 我从未使用过stackoverflow,因此如果格式错误,请原谅。
谢谢!
既然您已经弄清了树已经排序,那么您正在寻找树的有序遍历,它返回元素的排序列表-我假设您对列表感兴趣作为输出,因为问题中显示的是基本情况。 尝试这样的事情:
(define (tree-sort tree)
(if (empty-tree? tree)
'()
(append (tree-sort (left-subtree tree))
(list (value tree))
(tree-sort (right-subtree tree)))))
使用适当的过程测试树是否为空,以及访问每个节点的值(左和右子树)。 上面的过程将返回带有树值的排序列表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.