03.06. swap
Binärbäume sind Bäume, in denen alle innenliegenden Knoten genau zwei Nachkommen haben. Die kleinsten Binärbäume bestehen aus genau einem Blatt. Blätter werden als leaf(Label)
repräsentiert. leaf(3)
und leaf(7)
sind beispielsweise Blätter und dementsprechend kleine Binärbäume.
Die zwei Binärbäume B1
und B2
können mit dem Funktor tree/2
zu einem Binärbaum zusammengefügt werden, der wie folgt aussieht: tree(B1,B2)
.
Aus den Blättern leaf(2)
undleaf(4)
kann der Binärbaum tree(leaf(2),leaf(4))
gebaut werden.
Aus den Binärbäumen leaf(1)
und tree(leaf(2),leaf(4))
kann der Binärbaum tree(
gebaut werden.leaf(1)
tree(leaf(2),leaf(4))),
Definiere nun das Prädikat swap/2, das ein Spiegelbild des Binärbaumes, der ihm als erstes Argument übergeben wird, produziert.
Zum Beispiel:
?- swap(tree(leaf(1), tree(leaf(2), leaf(4))),T).
T = tree(tree(leaf(4), leaf(2)), leaf(1))).
Quelle: http://www.learnprolognow.org/lpnpage.php?pagetype=html&pageid=lpn-htmlse11
