44 lines
1,019 B
Text
44 lines
1,019 B
Text
(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*))
|