HTWK Leipzig, Fakult¨at IMN
Prof. Dr. Sibylle Schwarz sibylle.schwarz@htwk-leipzig.de
6. Praktikum zur Vorlesung
”Deklarative Programmierung“
Sommersemester 2015 gestellt am 26. Mai 2015
Aufgabe 6.1 (Funktionen auf Bin¨arb¨aumen)
Definieren Sie die folgenden Funktionen (Typdeklarationen nicht vergessen):
a. f¨ur Bin¨arb¨aume mit Int-Schl¨usseln (nur in den inneren Knoten):
(a) bt_max, welche den gr¨oßten Schl¨ussel im eingegebenen Baum angibt,
(b) bt_contains, welche angibt, ob ein eingegebener Baum einen eingegebenen Schl¨ussel enth¨alt,
(c) bt_alle_gleich, welche angibt, ob alle im eingegebenen Baum enthaltenen Schl¨ussel gleich sind.
b. f¨ur Bin¨arb¨aume mit Schl¨usseln eines beliebigen Typs (nur in den inneren Knoten):
(a) single, welche ausgibt, ob ein eingegebener Baum nur genau einen Schl¨ussel enth¨alt,
(b) preorder, welche die preorder-Schl¨usselfolge des eingegebenen Baumes angibt, (c) postorder, welche die postorder-Schl¨usselfolge des eingegebenen Baumes angibt, (d) tiefe, welche die Tiefe des Baumes (d.h. die maximale Anzahl der Kanten auf
dem l¨angsten Pfad von der Wurzel zu einem Blatt) angibt.
Aufgabe 6.2 (Strukturelle Induktion ¨uber Bin¨arb¨aumen)
Zeigen Sie durch strukturelle Induktion, dass f¨ur alle Bin¨arb¨aume mit nat¨urlichen Zahlen als Schl¨ussel gilt: bt_sum t = list_sum ( inorder t )
Aufgabe 6.3 (Bin¨arb¨aume mit Schl¨usseln in den Bl¨attern)
a. Definieren Sie einen Datentyp zur Repr¨asentation von Bin¨arb¨aumen, die nur in den Bl¨attern Schl¨ussel enthalten.
b. Definieren Sie f¨ur diese Art von B¨aumen die Funktionen (mit Typdeklarationen):
(a) count ( Anzahl der inneren Knoten ) (b) leaves ( Anzahl der Bl¨atter )
(c) tree_sum( Summe aller Schl¨ussel im Baum ) (d) tree_max( gr¨oßter vorkommender Schl¨ussel )
(e) tree_contains, welche angibt, ob der eingegebene Baum einen eingegebenen Schl¨ussel enth¨alt,
(f) tree_alle_gleich, welche angibt, ob alle im eingegebenen Baum enthaltenen Schl¨ussel gleich sind,
(g) tiefe ( wie in Aufgabe 6.bd)
Ubungsaufgaben, Folien und weitere Hinweise zur Vorlesung finden Sie online unter¨ www.imn.htwk-leipzig.de/~schwarz/lehre/ss15/dp.