more bst
This commit is contained in:
parent
be36959f87
commit
7391f2ffeb
1 changed files with 9 additions and 3 deletions
10
bst.rkt
10
bst.rkt
|
|
@ -3,8 +3,8 @@
|
||||||
(define-struct node (value left right))
|
(define-struct node (value left right))
|
||||||
|
|
||||||
(define (search node value) (cond
|
(define (search node value) (cond
|
||||||
[(= (node-value node) value) #t]
|
[(= (node-value node) value) node]
|
||||||
[(empty? node) #f]
|
[(empty? node) empty]
|
||||||
[(> (node-value node) value) (search (node-left node) value)]
|
[(> (node-value node) value) (search (node-left node) value)]
|
||||||
[else (search (node-right node) value)]
|
[else (search (node-right node) value)]
|
||||||
))
|
))
|
||||||
|
|
@ -51,3 +51,9 @@
|
||||||
[(< 1 (abs (- (height (node-left node)) (height (node-right node))))) -1]
|
[(< 1 (abs (- (height (node-left node)) (height (node-right node))))) -1]
|
||||||
[else (+ 1 (max (height (node-left node)) (height (node-right node))))]
|
[else (+ 1 (max (height (node-left node)) (height (node-right node))))]
|
||||||
))
|
))
|
||||||
|
|
||||||
|
(define (delete node)
|
||||||
|
(cond
|
||||||
|
[(empty? node) empty]
|
||||||
|
[(empty? (node-left node)) (node-right node)]
|
||||||
|
[(empty? (node-right node)) (node-left node)]))
|
||||||
Loading…
Add table
Add a link
Reference in a new issue