繁体   English   中英

Scheme中的树排序功能

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM