![]() | Lecture 3 - slide 40 : 43 |
; BINARY TREE STUFF
; Tree constructors:
(define (make-tree left-tree root-node right-tree)
(list left-tree root-node right-tree))
(define (leaf root-node) (make-tree '() root-node '()))
; Tree accessors:
(define root cadr)
(define left-tree car)
(define right-tree caddr)
; Tree predicates:
(define inner-node? pair?)
(define leaf? number?)
(define empty-tree? null?)
; Two concrete trees - identical to the ones shown on the previous slide:
(define tr1 (make-tree (make-tree (leaf 2) 4 (leaf 3))
7
(make-tree
(make-tree '() 0 (leaf 9))
1
(leaf 5))))
(define tr2 (make-tree (make-tree
(make-tree '() 1 (leaf 9))
0
(leaf 7))
8
(make-tree
(make-tree (leaf 2) 7 '())
6
(leaf 1))))