Blob


1 (define (entry tree) (car tree))
2 (define (left-branch tree) (cadr tree))
3 (define (right-branch tree) (caddr tree))
4 (define (make-tree entry left right)
5 (list entry left right))
7 (define (element-of-set? x set)
8 (cond ((null? set) #f)
9 ((= x (entry set)) #t)
10 ((< x (entry set))
11 (element-of-set? x (left-branch set)))
12 ((> x (entry set))
13 (element-of-set? x (right-branch set)))))
15 (define (adjoin-set x set)
16 (cond ((null? set) (make-tree x '() '()))
17 ((= x (entry set)) set)
18 ((< x (entry set))
19 (make-tree (entry set)
20 (adjoin-set x (left-branch set))
21 (right-branch set)))
22 ((> x (entry set))
23 (make-tree (entry set)
24 (left-branch set)
25 (adjoin-set x (right-branch set))))))