Advertisement
Guest User

Lista 4

a guest
Apr 26th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Racket 1.01 KB | None | 0 0
  1. ;; ćw. 6
  2.  
  3. (define (find-min t)
  4.   (if (leaf? (node-left t))
  5.       (node-val t)
  6.       (find-min (node-left t))))
  7.  
  8. (define (find-max t)
  9.   (if (leaf? (node-right t))
  10.       (node-val t)
  11.       (find-max (node-right t))))
  12.  
  13. (define (delete-min t)
  14.   (if (leaf? (node-left t))
  15.       (node-right t)
  16.       (make-node (node-val t) (delete-min (node-left t)) (node-right t))))
  17.  
  18.  
  19. (define (delete x t)
  20.   (if (or (leaf? t) (not (bst-find x t)))
  21.       t
  22.       (cond [(> x (node-val t)) (make-node (node-val t)
  23.                                            (node-left t)
  24.                                            (delete x (node-right t)))]
  25.             [(< x (node-val t)) (make-node (node-val t)
  26.                                            (delete x (node-left t))
  27.                                            (node-right t))]
  28.             [else (let ((min (find-min (node-right t))))
  29.                     (make-node min
  30.                                (node-left t)
  31.                                (delete-min (node-right t))))])))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement