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(leaf(1),tree(leaf(2),leaf(4))) gebaut werden.

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

Noch keine Kommentare eingereicht. Bitte hilf uns diese Aufgabe zu verbessern.

Schreibe einen Kommentar