0

二分探索木に項目を挿入しようとしていますが、エラーが発生し、その理由がわかりません。実行しようとすると:

(insert 11 '(5 '() '()))

エラーは次のとおりです。

. . >: contract violation
  expected: real?
  given: quote
  argument position: 2nd
  other arguments...:
   11

メインコード:

(define (node tree)
    (car tree))

(define (right-branch tree)
    (caddr tree))

(define (left-branch tree)
    (cadr tree))

(define (make-tree node left-branch right-branch)
    (list node left-branch right-branch))

(define (insert e tree)
    (cond((null? tree) (make-tree e '() '()))           
        ((> e (node tree))(make-tree (node tree) (left-branch tree) (insert e (right-branch tree)))) 
        ((< e (node tree))(make-tree (node tree) (insert e (left-branch tree)) (right-branch tree)))))

エラーは、問題のあるコードとして (> e (ノード ツリー)) を明確に指摘しています。ここで何が起こっているか知っている人はいますか?

4

1 に答える 1

2

あなたは二重引用符で囲みました、試してください

(insert 11 '(5 () ()))
于 2013-11-09T16:55:44.153 に答える