Skip to content

Instantly share code, notes, and snippets.

@yakreved
Created August 29, 2013 20:16
Show Gist options
  • Save yakreved/6382891 to your computer and use it in GitHub Desktop.
Save yakreved/6382891 to your computer and use it in GitHub Desktop.
sicp 2.66
(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 tree1 (make-tree 7
(make-tree 3
(make-tree 1 '() '())
(make-tree 5 '() '()))
(make-tree 9
'()
(make-tree 10 '() '()))))
(define tree2 (make-tree 3
(make-tree 1 '() '())
(make-tree 7
(make-tree 5 '() '())
(make-tree 9
'()
(make-tree 24 '() '())))))
(define (lookup x set)
(cond ((null? set) #f)
((= x (entry set)) (entry set))
((< x (entry set))
(lookup x (left-branch set)))
((> x (entry set))
(lookup x (right-branch set)))))
(lookup 3 tree1)
(lookup 55 tree1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment