(set *tree* [1 [2 [4 [7]] [5]] [3 [6 [8] [9]]]]) (define inorder [] -> [] [V] -> [V] [V L] -> (append (inorder L) [V]) [V L R] -> (append (inorder L) [V] (inorder R))) (define postorder [] -> [] [V] -> [V] [V L] -> (append (postorder L) [V]) [V L R] -> (append (postorder L) (postorder R) [V])) (define preorder [] -> [] [V] -> [V] [V L] -> (append [V] (preorder L)) [V L R] -> (append [V] (preorder L) (preorder R))) (define levelorder-0 [] -> [] [[] | Q] -> (levelorder-0 Q) [[V | LR] | Q] -> [V | (levelorder-0 (append Q LR))]) (define levelorder Node -> (levelorder-0 [Node])) (preorder (value *tree*)) (postorder (value *tree*)) (inorder (value *tree*)) (levelorder (value *tree*))