Another reason for doing a preorder
traversal would be to create a (flat) list
of the nodes:
(preorder bushy-tree) ⇒ (4 2 1 3 6 5 7)
To create this list, the built-in procedure
append is useful. Example:
(append '(a b c) '(1 2 3 4)) ⇒ (a b c 1 2 3 4)
(define preorder
(lambda (tree)
(if (empty-tree? tree)
'()
(cons (root tree) __?__))))
|
|