• Keine Ergebnisse gefunden

16 B¨ aume umdrehen 5 Punkte

N/A
N/A
Protected

Academic year: 2022

Aktie "16 B¨ aume umdrehen 5 Punkte"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Praktische Informatik 3 WS 06/07

6. ¨ Ubungsblatt

Ausgabe: 23.01.07 Abgabe: 06.02.07

Christoph L¨uth <cxl>

Matthias Berger <tokio>

Klaus Hartke <hartke>

Cui Jian<ken>

Friederike Jolk <rikej>

Christian Maeder <maeder>

Diedrich Wolter <dwolter>

16 B¨ aume umdrehen 5 Punkte

Genau wie eine Liste kann man einen Baum auch umdrehen (allerdings nur seitlich, anson- sten ragen die Bl¨atter in die Luft). Die Funktionflipsoll bei einem Baum die Reihenfolge der Knoten umdrehen. Sie hat folgende Signatur

flip :: Tree a-> Tree a

und soll folgende Spezifikation erf¨ullen:

inorder (flip t) = rev (inorder t)

Geben Sie eine Implementation von flip an, und zeigen Sie, dass flip die Spezifikation erf¨ullt.

17 Wahrheit oder L¨ uge? 10 Punkte

Zwischen den Studenten Sebastian Schlaudrauf und Bastian Blitzmerker ist ein erbitterter Streit entbrannt: beide haben w¨ahrend der Vorlesung verschiedene Behauptungen mitge- schrieben, aber vergessen, welche davon wahr, und welche falsch sind!

Helfen Sie den beiden, und zeigen oder widerlegen Sie folgende Behauptungen:

1. rev (rev x)= x

2. map f (map g x)= map (f. g) x 3. postorder (flip t) = preorder t 4. preorder t = rev (postorder t)

preorderund postorder ist die Traversion der Knoten des Baumes in Pr¨a- und Postord- nung (siehe Vorlesung vom 05.12.06).

Hinweis: Das Lemma rev (xs++ ys)= rev ys ++ rev xs aus der Vorlesung k¨onnte sich als hilfreich erweisen.

(2)

18 Korrekt gefiltert 5 Punkte

Im Jahre 2013 soll die erste deutsche bemannte Marsmission gestartet werden. Die Steuer- software f¨ur die Marsmission ist nat¨urlich in Haskell geschrieben, weil Korrektheit in der Raumfahrt oberstes Gebot ist und man Haskell-Programme so einfach verifizieren kann.

Ein Teil der Steuersoftware benutzt bin¨are B¨aume (wof¨ur ist nicht klar, schließlich gibt es keine B¨aume auf dem Mars, aber das ist hier nicht weiter relevant). Dazu wird unter anderem eine Filter-Funktion f¨ur bin¨are B¨aume mit folgender Signatur ben¨otigt:

tfilter :: (a-> Bool)-> Tree a-> Tree a

tfilter p t soll einen Baum zur¨uckliefern, der genau alle Knoten von t enth¨alt, welche das Pr¨adikatperf¨ullen, oder mit anderen Worten,tfiltersoll analog der Funktionfilter f¨ur Listen arbeiten. Sie sollen diese Funktion implementieren, und dar¨uberhinaus Ihre Implementation als korrekt beweisen.

1. Geben Sie eine Spezifikation der Funktion tfilter an. (2 Punkte) 2. Implementieren Sie die Funktiontfilter. (1 Punkte) 3. Beweisen Sie die Korrektheit Ihrer Implementation, d.h. dass die Funktion die Spe-

zifikation erf¨ullt. (2 Punkte)

Hinweis: Die Implementation von tfilter ist ¨ahnlich der Implementation des L¨oschens von Knoten in einem (balancierten) Baum (siehe Vorlesung vom 12.12.06).

Dies ist Version 1.0 vom 2007/01/23 13:20:57.

Referenzen

ÄHNLICHE DOKUMENTE

Bestimmen Sie das (reelle) elektrische und magnetische Feld einer ebenen elektrischen Welle im Vakuum mit Amplitude a, Frequenz ω und Phasenwinkel Null, die. i) sich in die

Wir groß muss die alterspezifische Sterberate f¨ ur die dritte Altersklasse sein, damit die durchschnittliche Sterberate genauso groß ist wie in der

Nach dem Exponentialansatz hat man das Fundamentalsystem e 5t , te 5t. c) Die allgemeine L¨ osung der inhomogenen DGL ist... Da ein Eigenwert positiv ist, liegt Instabilit¨

[r]

Abgabe am Donnerstag, den 26.4.2007 in der Übung. Aufgabe 10: (Maximierung der Entropie)

[r]

Oliver Schn¨ urer, Universit¨ at Konstanz Wintersemester 2010/2011 Matthias Makowski. Ubungen zur Vorlesung Lineare Algebra

• Bei der Konstruktion von geometrischen Fi- guren in der Ebene mit Hilfe von Lineal und Zirkel verwendet man die