2.68
(define (encode-symbol x tree)
(define (lookup x symbols)
(if (null? symbols)
#f
(if (eq? x (car symbols))
#t
(lookup x (cdr symbols)))))
(if (leaf? tree)
'()
(let ((left (left-branch tree))
(right (right-branch tree)))
(cond ((lookup x (symbols left)) (cons 0 (encode-symbol x left)))
((lookup x (symbols right)) (cons 1 (encode-symbol x right)))
(else "error")))))
2.69
(define (successive-merge tree)
(if (null? (cdr tree))
(car tree)
(successive-merge (adjoin-set (make-code-tree (car tree) (cadr tree)) (cddr tree)))))
2.71
因为1+...+2^(n-1)=2^n-1 < 2^n,所以这棵树是一个这样的树
most为0
least为n-1
2.72
O(n^2)