PasteRack.org
Paste # 18723
2025-08-29 12:15:26

Fork as a new paste.

Paste viewed 324 times.


Embed:

#lang racket

(require 2htdp/image) (define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))(define (make-tree root left right)  (cond    ;; no children    [(and (empty-image? left) (empty-image? right))     root]    ;; only left child    [(empty-image? right)     (above root            (line 0 (/ (image-height left) 2) "black")            left)]    ;; only right child    [(empty-image? left)     (above root            (line 0 (/ (image-height right) 2) "black")            right)]    ;; both children    [else     (above root            (beside (line (- (/ (image-width left) 2))                          (/ (image-width left) 4)                          "black")                    (line (/ (image-width right) 2)                          (/ (image-width right) 4)                          "black"))            (beside left                    (rectangle (/ (image-width left) 2) 1 "solid" "white")                    (rectangle (/ (image-width right) 2) 1 "solid" "white")                    right))]));; Usage examples(define leaf1 (text "1:abc" 20 "black"))(define leaf2 (text "10:xyz" 20 "black"))(define leaf3 (text "7:foo" 20 "black"));; both children(define tree1 (make-tree (text "5:def" 20 "black") leaf1 leaf2));; only left(define tree2 (make-tree (text "20:left-only" 20 "black") leaf3 empty-image));; only right(define tree3 (make-tree (text "30:right-only" 20 "black") empty-image leaf2));; no children(define tree4 (make-tree (text "40:leaf" 20 "black") empty-image empty-image))

=>

#<syntax:/home/pasterack/pasterack/tmp/18723/18723code.scrbl:5:0 "#lang racket">:3:59: read-syntax: expected a `)` to close `(`
  context...:
   /home/pasterack/racket88/collects/syntax/module-reader.rkt:214:17: body
   /home/pasterack/racket88/collects/syntax/module-reader.rkt:211:2: wrap-internal
   /home/pasterack/racket88/collects/racket/../syntax/module-reader.rkt:76:9: wrap-internal/wrapper
   /home/pasterack/racket88/share/pkgs/scribble-lib/scribble/private/manual-code.rkt:138:19: loop
   /home/pasterack/racket88/share/pkgs/scribble-lib/scribble/private/manual-code.rkt:112:0: get-tokens
   /home/pasterack/racket88/share/pkgs/scribble-lib/scribble/private/manual-code.rkt:56:0: typeset-code
   body of "/home/pasterack/pasterack/tmp/18723/18723code.scrbl"
   .../private/map.rkt:40:19: loop
   .../racket/cmdline.rkt:191:51
   body of "/home/pasterack/racket88/share/pkgs/scribble-lib/scribble/run.rkt"