rendered paste body(define-struct node (ssn name left right))
(define (add-to-bst n s bstree)
(cond [(= n (node-ssn bstree)) bstree]
[(and (> n (node-ssn bstree)) (boolean? (node-left bstree)))
(make-node
(node-ssn bstree)
(node-name bstree)
(node-left bstree)
(make-node n s false false))]
[(and (< n (node-ssn bstree)) (boolean? (node-right bstree)))
(make-node
(node-ssn bstree)
(node-name bstree)
(make-node n s false false)
(node-right bstree))]
[(> n (node-ssn bstree))
(make-node
(node-ssn bstree)
(node-name bstree)
(node-left bstree)
(add-to-bst n s (node-right bstree)))]
[(< n (node-ssn bstree))
(make-node
(node-ssn bstree)
(node-name bstree)
(add-to-bst n s (node-left bstree))
(node-right bstree))]))
(define tree (make-node
15
'd
(make-node 14
'h
(make-node 13 'r false false)
(make-node 16 'k false false))
false))
> (add-to-bst 12 'r tree)
(make-node 15 'd (make-node 12 'r false false) false)