Ich lerne OCaml für eine Klasse und erhielt die Aufgabe, das Spiegelbild eines Binärbaums zu berechnen. Ich bin ganz fest und bin nicht sicher, wie man überhaupt anfangen ...OCaml Binary Tree Spiegelbild
type btree = Empty | Node of int * btree * btree
;;
let mirror : btree -> btree
= fun t -> (* Code *)
Probeneingang:
let tree1 = Node(1, Node(2, Node(3, Empty, Empty), Empty), Node(4, Empty, Empty))
;;
Beispielausgabe:
mirror tree1 = Node(1, Node(4, Empty, Empty), Node(2, Empty, Node(3, Empty, Empty)))
;;
https://meta.stackoverflow.com/questions/334822/how-do-i-ask-and-answer-homework-questions – gallais
mit etwas beginnen einfach: was der Code sein könnte Spiegeln (1, leer, leer)? Knoten (1, Knoten (2, leer, leer), leer)? und generalisiere dann (siehe die Antwort von Jin unten). Veröffentlichen Sie Ihre Versuche - Sie haben dann eine größere Chance, Hilfe zu bekommen. –
Normalerweise würden Sie in ML Mustervergleiche verwenden, aber es ist interessant, wie Sie (oder Ihr Lehrer) das Beispiel geben, das an [s-Ausdrücke] erinnert (https://en.wikipedia.org/wiki/Cons). – PieOhPah