19 lines
No EOL
618 B
Scheme
19 lines
No EOL
618 B
Scheme
#lang sicp
|
|
|
|
(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 (key record)
|
|
(car record))
|
|
|
|
(define (lookup given-key set-of-records)
|
|
(cond ((null? set-of-records) false)
|
|
((= given-key (key (entry set-of-records)))
|
|
(entry set-of-records))
|
|
((< given-key (key (entry set-of-records)))
|
|
(lookup given-key (left-branch set-of-records)))
|
|
((> given-key (key (entry set-of-records)))
|
|
(lookup given-key (right-branch set-of-records))))) |