• Keine Ergebnisse gefunden

Rekursive Datenstrukturen

N/A
N/A
Protected

Academic year: 2022

Aktie "Rekursive Datenstrukturen"

Copied!
1
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Universit¨ at Karlsruhe (TH)

Lehrstuhl f¨ur Programmierparadigmen

Theorembeweiser und ihre Anwendungen SS 2009 http://pp.info.uni-karlsruhe.de/

Ubungsleiter:¨ Daniel Wasserrab wasserra@ipd.info.uni-karlsruhe.de

Ubungsblatt 4¨ Besprechung: 19.05.2009

Rekursive Datenstrukturen

In dieser ¨Ubung soll eine rekursive Datenstruktur f¨ur Bin¨arb¨aume erstellt werden. Außerdem sollen Funktionen ¨uber Bin¨arb¨aume definiert und Aussagen dar¨uber gezeigt werden. Dazu d¨urfen Sie auch automatische Taktiken, z.B.autoverwenden. Und denken Sie daran:Recursion is proved by induction!.

Als erstes definieren Sie den Datentypen f¨ur Bin¨arb¨aume. Sowohl Bl¨atter als auch innere Knoten speichern Information. Der Typ der Information soll beliebig sein, also arbeiten sie mit Typparameter

0a.

datatype 0a tree =. . .

Definieren Sie jetzt die Funktionen preOrder, postOrder und inOrder, welche einen 0a tree in der entsprechenden Ordnung durchlaufen:

consts

preOrder :: 0a tree 0a list postOrder :: 0a tree 0a list inOrder :: 0a tree 0a list

Als n¨achstes definieren Sie eine Funktionmirror, welche das Spiegelbild eines 0a tree zur¨uckgibt.

constsmirror :: 0a tree 0a tree

SeienxOrder undyOrder Verfahren zum Durchlaufen von B¨aumen, beliebig ausgew¨ahlt auspreOrder, postOrder undinOrder. Formulieren und zeigen Sie alle g¨ultigen Eigenschaften der ArtxOrder (mirror xt) = rev (yOrder xt).

Definieren Sie die Funktionenroot,leftmost undrightmost, welche die Wurzel, das ¨außerst links bzw.

das ¨außerst rechts gelegene Element zur¨uckgeben.

consts

root :: 0a tree 0a leftmost :: 0a tree 0a rightmost :: 0a tree 0a

Zum Schluss beweisen Sie noch folgende Theoreme oder zeigen ein Gegenbeispiel (dazu kann man u.a.

quickcheck verwenden). Es kann n¨otig sein, erst bestimmte Hilfslemmas zu beweisen.

theoremlast (inOrder xt) =rightmost xt theoremhd (inOrder xt) = leftmost xt

theoremhd (preOrder xt) =last (postOrder xt) theoremhd (preOrder xt) =root xt

theoremhd (inOrder xt) = root xt theoremlast (postOrder xt) =root xt

Referenzen

ÄHNLICHE DOKUMENTE

Das heißt, es wird eine auf einer offenen Menge in C I definierte holomorphe Fortsetzung von L −1 (λ) gesucht, die ihrerseits nicht mehr weiter holomorph echt fortgesetzt werden

2 Aufbau des Studiums Studienplan Bachelor Swiss Joint Master Ablauf einer Vorlesung

[r]

” figura cata“ aufgestellt hatte, f¨ur richtig, indem er bemerkt, dass sie eine Proportion zwischen sechs Gr¨ossen angiebt, und zeigt, dass diese Proportion auf 18 verschiedene

3.1-3.3] Ferrers Graphen, konjugierte Partitionen, obere Schranke von p(n) mittels Fibonacci-Zahlen, Aufgabe 25 oder 30.. 3 Ferrers Graphen II

(Die Ableitung von η ) Die Voraussetzungen seien wie im Satz ¨ uber implizite Funktionen. Letztere wird somit lokal als Graph der Funktion η dargestellt. Der folgende Begriff

F sei ein endlicher K¨ orper der Charakteristik p und V sei ein orthogonaler, symplektischer oder unit¨ arer Vektorraum ¨ uber F.. Dann existiert eine (bis auf ¨ Aquivalenz)

Wir sprechen von einem vollen Bin ¨arbaum, wenn jeder innere Knoten zwei Nachfolger hat.. Der obige Bin ¨arbaum ist