Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (struct tree (left value right) #:transparent)
- (define (imbalance tree n)
- (if (null? tree)
- #t
- (letrec ([visina (lambda (x)
- (cond [(null? x) 1]
- [(and (null? (tree-left x)) (null? (tree-right x))) 2]
- [(null? (tree-left x)) (+ 1 (visina (tree-right x)))]
- [(null? (tree-left x)) (+ 1 (visina tree-left))]
- [#t (+ 1 (max (visina (tree-left x)) (visina (tree-right x))))]))]
- [visina_levo (visina (tree-left tree))]
- [visina_desno (visina (tree-right tree))])
- (if (> (abs (- visina_levo visina_desno)) n)
- #f
- (begin (imbalance (tree-left tree) n)
- (imbalance (tree-right tree) n))))))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement