Algorithmen und Datenstrukturen Elementare Datenstrukturen
Algorithmen und Datenstrukturen Elementare Datenstrukturen Algorithmen und Datenstrukturen Elementare Datenstrukturen
Noch ein Rekursionsbeispiel Türme von Hanoi 19 Türme von Hanoi Scheiben unterschiedlicher Größen sollen von einem Lagerplatz zu einem anderen Transportiert werden Regeln: es darf nur eine Scheibe zur Zeit transportiert werden es darf nur eine kleinere auf eine größere Scheibe gelegt werden es steht ein zusätzlicher Hilfslagerplatz zur Verfügung 20 10
Beispiellösung Algorithmus zum Lösen des Problems Türme von Hanoi Siehe hanoi.cpp 21 Ablauf für 3 Scheiben: main: Anzahl der Scheiben: 3 towers( 3, A, B, C ); towers( 2, A, C, B ); towers( 1, A, B, C ); Ausgabe: Scheibe 1 von A nach C Ausgabe: Scheibe 2 von A nach B towers( 1, C, A, B ); Ausgabe: Scheibe 1 von C nach B Ausgabe: Scheibe 3 von A nach C towers( 2, B, A, C ); towers( 1, B, C, A ); Ausgabe: Scheibe 1 von B nach A Ausgabe: Scheibe 2 von B nach C towers( 1, A, B, C ); Ausgabe: Scheibe 1 von A nach C Fertig 22 11
- Seite 1 und 2: Algorithmen und Datenstrukturen Dip
- Seite 3 und 4: Beispiele für Rekursionen Das Fer
- Seite 5 und 6: direkt und indirekt direkte Rekurs
- Seite 7 und 8: Stackframes bei Rekursion Laufzeit
- Seite 9: Merkmale der Rekursion Rekursion
- Seite 13 und 14: Frage Wie kommt man vom Problem
- Seite 15 und 16: Allgemeiner Fall (für alle Scheibe
- Seite 17 und 18: Beispiel 20 14 33 8 17 26 39 3 11 3
- Seite 19 und 20: Datenstruktur eines Knotens struct
- Seite 21 und 22: Postorder (LRW) programmiert void p
- Seite 23 und 24: Löschen im binären Suchbaum Fall
- Seite 25 und 26: Löschen im binären Suchbaum Fall
- Seite 27 und 28: Löschen im binären Suchbaum Fall
- Seite 29: Löschen im binären Suchbaum left
Beispiellösung<br />
Algorithmus zum Lösen des Problems<br />
Türme von Hanoi<br />
Siehe<br />
hanoi.cpp<br />
21<br />
Ablauf für 3 Scheiben:<br />
main: Anzahl der Scheiben: 3<br />
towers( 3, A, B, C );<br />
towers( 2, A, C, B );<br />
towers( 1, A, B, C );<br />
Ausgabe: Scheibe 1 von A nach C<br />
Ausgabe: Scheibe 2 von A nach B<br />
towers( 1, C, A, B );<br />
Ausgabe: Scheibe 1 von C nach B<br />
Ausgabe: Scheibe 3 von A nach C<br />
towers( 2, B, A, C );<br />
towers( 1, B, C, A );<br />
Ausgabe: Scheibe 1 von B nach A<br />
Ausgabe: Scheibe 2 von B nach C<br />
towers( 1, A, B, C );<br />
Ausgabe: Scheibe 1 von A nach C<br />
Fertig<br />
22<br />
11