; SIGNATUR ; btree-preorder : btree -> list ; ERKLÄRUNG ; liefert die Liste der Elemente des Baums in Preorder-Reihenfolge ; BEISPIEL ; (btree-preorder empty) == empty ; (btree-preorder (make-branch (make-branch empty 1 empty) 0 empty)) ; == (list 0 1) ; (btree-preorder ; (make-branch (make-branch empty 5 (make-branch empty 10 empty)) ; 11 empty)) ; == (list 11 5 10) ; DEFINITION (define btree-preorder (lambda (t) (cond ((empty? t) empty) ((branch? t) (cons (branch-elem t) (append (btree-preorder (branch-left t)) (btree-preorder (branch-right t)))))))) ; SIGNATUR ; btree-postorder : btree -> list ; ERKLÄRUNG ; liefert die Liste der Elemente des Baums in Postorder-Reihenfolge ; BEISPIEL ; (btree-postorder empty) == empty ; (btree-postorder (make-branch (make-branch empty 1 empty) 0 empty)) ; == (list 1 0) ; (btree-postorder ; (make-branch (make-branch empty 5 (make-branch empty 10 empty)) ; 11 empty)) ; == (list 5 10 11) ; DEFINITION (define btree-postorder (lambda (t) (cond ((empty? t) empty) ((branch? t) (append (btree-postorder (branch-left t)) (btree-postorder (branch-right t)) (list (branch-elem t)))))))