<div class="notebook"> <div class="nb-cell markdown" name="md1"> ## 03.06. swap </div> <div class="nb-cell markdown" name="md2"> Definiere nun das Prädikat swap/2, das ein Spiegelbild des Binärbaumes, der ihm als erstes Argument übergeben wird, produziert </div> <div class="nb-cell markdown" name="md5"> Zum Beispiel: ?- swap(tree(leaf(1), tree(leaf(2), leaf(4))),T). T = tree(tree(leaf(4), leaf(2)), leaf(1))). </div> <div class="nb-cell program" data-background="true" name="p1"> % swap/2 </div> <div class="nb-cell markdown" name="md3"> ### Testen der Lösung </div> <div class="nb-cell markdown" name="md4"> Hier kannst du deine Lösung testen, indem du die Query ausführst und die Rückgaben vergleichst. </div> <div class="nb-cell query" name="q1"> write('Basisfall Blatt: true'), swap(leaf(x),leaf(x)). </div> <div class="nb-cell query" name="q2"> write("2 Blaetter: true "), swap(tree(leaf(x),leaf(y)),tree(leaf(y),leaf(x))). </div> <div class="nb-cell query" name="q3"> write("ungeswappte schlagen fehl: false "), swap(tree(leaf(x),leaf(y)),tree(leaf(x),leaf(y))). </div> <div class="nb-cell query" name="q4"> write("guter groesserer Baum klappt: true "), swap(tree(leaf(x),tree(tree(leaf(v),leaf(y)),leaf(z))),tree(tree(leaf(z), tree(leaf(y), leaf(v))), leaf(x))). </div> <div class="nb-cell query" name="q5"> write("schlechter groesserer Baum klappt nicht: false "), swap(tree(leaf(x),tree(tree(leaf(y),leaf(v)),leaf(z))),tree(tree(leaf(z), tree(leaf(y), leaf(v))), leaf(x))). </div> </div>