S-99-64


(define bst-layout

  (lambda (tree)
  (let loop ((t tree)
             (depth 1))
    (match t
      [(node k lt rt)
       (cons (list k (size lt) depth)
             (append (loop lt (+ depth 1)) (loop rt (+ depth 1))))]
      ['nil '()]))))

(define size

  (lambda (t)
    (match t
      [(node k lt rt) (+ 1 (size lt) (size rt))]
      ['nil 0])))