(define (enumerate-interval low high)
        (if (> low high)
                '()
                (cons low (enumerate-interval (+ low 1) high))))

(define (enumerate-tree tree)
        (cond ((null? tree) '())
              ((not (pair? tree)) (list tree))
              (else (append (enumerate-tree (car tree))
                            (enumerate-tree (cdr tree)))))


(display (enumerate-tree (list 1 (list 2 (list 3 4) 5)))))
(newline)
(enumerate-tree (list 1 (list 2 (list 3 4) 5)))
