練習2.66
這道題相當于2叉樹在實際工程中的1個應用,我們照舊要用到前面所學到的3個進程:entry, left-branch, right-branch。這3者的作用分別是取出結點、左分支、右分支。而根據題目要求,這里還需要1個獲得鍵值的key。固然了,就像書中上文所展現的那樣,key其實不需要我們寫出來,這里就用到了按欲望思惟。
(define (lookup given-key tree-of-records)
(if (null? tree-of-records)
#f
(let ((entry-key (key (entry tree-of-records))))
(cond ((= given-key entry-key)
(entry tree-of-records))
((> given-key entry-key)
(lookup given-key (right-branch tree-of-records)))
((< given-key entry-key)
(lookup given-key (left-branch tree-of-records)))))))