; COSC 152 ; Fall 2005 ; Dennis Brylow ; ; Lecture 8 Demo ; Binary Tree using the define-datatype syntax extension. (define-datatype tree tree? (tree-node (datum number?) (left tree?) (right tree?)) (tree-null)) (define add-tree (lambda (n t) (if (tree? t) (cases tree t (tree-null () (tree-node n t t)) (tree-node (datum left right) (if (< n datum) (tree-node datum (add-tree n left) right) (tree-node datum left (add-tree n right)))) ) 'error-not-tree) ) ) (define search-tree (lambda (n t) (if (tree? t) (cases tree t (tree-null () #f) (tree-node (datum left right) (cond ((eq? n datum) #t) ((< n datum) (search-tree n left)) (else (search-tree n right))))) 'error-not-tree) ) )