From a0420c28796b459d9fe12e36ca18816824f23c2d Mon Sep 17 00:00:00 2001 From: joachimschmidt557 Date: Sun, 8 Sep 2019 19:18:29 +0200 Subject: [PATCH] format bst --- bst.rkt | 78 +++++++++++++++++++++++++-------------------------------- 1 file changed, 34 insertions(+), 44 deletions(-) diff --git a/bst.rkt b/bst.rkt index d3a6647..b349c8c 100644 --- a/bst.rkt +++ b/bst.rkt @@ -2,55 +2,45 @@ (define-struct node (value left right)) -(define (search node value) (cond - [(= (node-value node) value) node] - [(empty? node) empty] - [(> (node-value node) value) (search (node-left node) value)] - [else (search (node-right node) value)] - )) +(define (search node value) + (cond + [(= (node-value node) value) node] + [(empty? node) empty] + [(> (node-value node) value) (search (node-left node) value)] + [else (search (node-right node) value)])) -(define (insert node value) (cond - [(empty? node) (make-node value empty empty)] - [(> (node-value node) value) (make-node (node-value node) (insert (node-left node) value) (node-right node))] - [else (make-node (node-value node) (node-left node) (insert (node-right node) value))] - )) +(define (insert node value) + (cond + [(empty? node) (make-node value empty empty)] + [(> (node-value node) value) (make-node (node-value node) (insert (node-left node) value) (node-right node))] + [else (make-node (node-value node) (node-left node) (insert (node-right node) value))])) -(define (bst-from-list lst) (cond - [(empty? lst) empty] - [else (insert (bst-from-list (rest lst)) (first lst))] - )) +(define (bst-from-list lst) + (cond + [(empty? lst) empty] + [else (insert (bst-from-list (rest lst)) (first lst))])) -(define (rotate-left node) (if (empty? node) empty (let - ( - [x node] - [l (node-left node)] - [r (node-right node)]) - (let ( - [a (if (empty? l) empty (node-left l))] - [b (if (empty? l) empty (node-right l))] - [c (if (empty? r) empty (node-left r))] - [d (if (empty? r) empty (node-right r))] - ) ( - (make-node (node-value l) - a - (make-node (node-value x) - b - r) - ) - ))))) +(define (rotate-left node) + (if (empty? node) empty + (let ([x node] [l (node-left node)] [r (node-right node)]) + (let ([a (if (empty? l) empty (node-left l))] + [b (if (empty? l) empty (node-right l))] + [c (if (empty? r) empty (node-left r))] + [d (if (empty? r) empty (node-right r))]) + (make-node (node-value l) a (make-node (node-value x) b r)))))) -(define (height node) (cond - [(empty? node) 0] - [else (+ 1 (max (height (node-left node)) (height (node-right node))))] - )) +(define (height node) + (cond + [(empty? node) 0] + [else (+ 1 (max (height (node-left node)) (height (node-right node))))])) -(define (avlcheck node) (cond - [(empty? node) 0] - [(= (height (node-left node)) -1) -1] - [(= (height (node-right node)) -1) -1] - [(< 1 (abs (- (height (node-left node)) (height (node-right node))))) -1] - [else (+ 1 (max (height (node-left node)) (height (node-right node))))] - )) +(define (avlcheck node) + (cond + [(empty? node) 0] + [(= (height (node-left node)) -1) -1] + [(= (height (node-right node)) -1) -1] + [(< 1 (abs (- (height (node-left node)) (height (node-right node))))) -1] + [else (+ 1 (max (height (node-left node)) (height (node-right node))))])) (define (delete node) (cond