练习2.66
这道题相当于二叉树在实际工程中的一个运用,我们依旧要用到前面所学到的三个过程:entry, left-branch, right-branch。这三者的作用分别是取出结点、左分支、右分支。而根据题目要求,这里还需要一个获取键值的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)))))))
时间: 2024-10-11 10:31:46