Advertisement
thehacker15

Untitled

Nov 9th, 2020
2,075
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scheme 1.30 KB | None | 0 0
  1. (define(arithvalue T)
  2.   (cond((eq? (arithvalue T) #\+)(+ (arithvalue (left T))
  3.                           (arithvalue (right T))))
  4.        ((eq? (arithvalue T) #\*)(*(arithvalue(left T))
  5.                               (arithvalue(right T))))
  6.        ((eq? (arithvalue T) #\-)(- (arithvalue(left T))))
  7.        ((eq? (arithvalue T) #\/)(/ 1(arithvalue(left T))))
  8.        (else (arithvalue T))))
  9.  
  10.  
  11. (define (right tree) (caddr tree))
  12. (define (delete-value v T)
  13.  (define (leaf? T) (and (null? (left T))
  14.                         (null? (right T))))
  15.   (define (tree-max T)  (if (null? (right T))
  16.                             (value T)
  17.                             (max (value T)
  18.                                  (tree-max (right T)))))
  19.   (cond ((null? T) '())
  20.         ((< (value T)) (make-tree (value T)
  21.                                   (delete-value v (left T))
  22.                                   (right T)))
  23.         ((> v (value T)) (make-tree (value T)
  24.                                     (left T)
  25.                                     (delete-value v (right T))))
  26.         ((null? (left T)) (right T))
  27.         (else (make-tree (tree-max (left T))
  28.                          (delete-value (tree-max (left T))
  29.                                  (left T)
  30.                                (right T))))))
  31.                        
  32.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement