Sunday, June 7, 2009

Ex-2.65

;set1, set2 are ordered lists
(define (union-set-aux set1 set2)
(cond
((null? set1) set2)
((null? set2) set1)
((< (car set1) (car set2))
(cons (car set1) (union-set-aux (cdr set1) set2)))
((= (car set1) (car set2))
(cons (car set1) (union-set-aux (cdr set1) (cdr set2))))
(else
(union-set-aux set2 set1))))
;set1, set2 are binary trees
(define (union-set set1 set2)
(list->tree
(union-set-aux
(tree->list-2 set1)
(tree->list-2 set2))))

No comments:

Post a Comment