(define (entry tree) (car tree))
(define (left-branch tree) (cadr tree))
(define (right-branch tree) (caddr tree))
(define (make-tree entry left right) (list entry left right))
(define (mktree order items_list)
(cond ((= (length items_list) 1)
(make-tree (car items_list) '() '()))
(else
(insert2 order (car items_list) (mktree order (cdr items_list))))))
(define (insert2 order x t)
(cond ((null? t) (make-tree x '() '()))
((order x (entry t))
(make-tree (entry t) (insert2 order x (left-branch t)) (right-branch t)))
((order (entry t) x)
(make-tree (entry t) (left-branch t) (insert2 order x (right-branch t))))
(else t)))
结果是:化妆树
(mktree (lambda (x y) (< x y)) (list 7 3 5 1 9 11))
(11 (9 (1() (5 (3()()) (7()())))())())
但我试图让:
(7 (3 (1()()) (5()())) (9() (11()())))
问题出在哪里?
更新您的标签计划一个我想这就是它... – assylias
这是球拍吗? (以前称为PLT计划。) –
看起来您需要一些更简单的测试用例! –