Gegeben ist eine rekursive Strukturbaumzu geordneten Sequenz Werte eines Baumes Blatt ändern, während die Struktur des Baumes Erhaltung
data Tree = Leaf Int | Node Tree Tree deriving Show
Ich möchte es in einer Art und Weise normalisieren, dass der Baum die Struktur bewahrt, macht aber die ganzen Zahlen an die Blätter folgen in Tiefen erster Ordnung. Wie kann ich das erreichen? Mein aktueller Setup-Code sieht wie folgt aus:
myTree = Node (Leaf 3) (Node (Leaf 5) (Leaf 2))
myTree' = normalize myTree
-- preserve tree structure, but make Ints sequential in depths-first traversal
normalize :: Tree -> Tree
normalize = id -- todo: implement
main = do
print myTree -- prints : Node (Leaf 3) (Node (Leaf 5) (Leaf 2))
print myTree' -- should print: Node (Leaf 1) (Node (Leaf 2) (Leaf 3))
[funktioniert super] (http://ideone.com/bfO62J) (leicht vereinfachte Statusfunktion). Vielen Dank. –