簡體   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