All pastes #221867 Raw Edit

Untitled

public text v1 · immutable
#221867 ·published 2006-10-25 22:34 UTC
rendered paste body
;;   Question 5

(define-struct node (ssn name left right))

(define (search-bst n bstree)
  (cond [(= n (node-ssn bstree)) (node-name bstree)]
        [(> n (node-ssn bstree)) (search-bst n (node-left bstree))]
        [(< n (node-ssn bstree)) (search-bst n (node-right bstree))]
        [else false]))

(define (add-to-bst n s bstree)
  (cond [(search-bst n bstree) bstree]
        [(> n (node-ssn bstree)) (add-to-bst n s (node-left bstree))]
        [(< n (node-ssn bstree)) (add-to-bst n s (node-right bstree))]
        [(and (> n (node-ssn bstree)) 
              (boolean? (node-left bstree)))
         (make-node (node-ssn bstree) (node-name bstree) 
                    (make-node n s false false) false)]
        [(and (< n (node-ssn bstree)) 
              (boolean? (node-right bstree)))
         (make-node (node-ssn bstree) (node-name bstree) 
                    false (make-node n s false false))]))