Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;; ćw. 6
- (define (find-min t)
- (if (leaf? (node-left t))
- (node-val t)
- (find-min (node-left t))))
- (define (find-max t)
- (if (leaf? (node-right t))
- (node-val t)
- (find-max (node-right t))))
- (define (delete-min t)
- (if (leaf? (node-left t))
- (node-right t)
- (make-node (node-val t) (delete-min (node-left t)) (node-right t))))
- (define (delete x t)
- (if (or (leaf? t) (not (bst-find x t)))
- t
- (cond [(> x (node-val t)) (make-node (node-val t)
- (node-left t)
- (delete x (node-right t)))]
- [(< x (node-val t)) (make-node (node-val t)
- (delete x (node-left t))
- (node-right t))]
- [else (let ((min (find-min (node-right t))))
- (make-node min
- (node-left t)
- (delete-min (node-right t))))])))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement