Algorithmen und Datenstrukturen Elementare Datenstrukturen
Algorithmen und Datenstrukturen Elementare Datenstrukturen Algorithmen und Datenstrukturen Elementare Datenstrukturen
Löschen im binären Suchbaum Fall 3, Vorteil Lösung b: die Höhe des Baums hat sich nicht vergrößert 26 14 33 17 8 30 39 3 11 55 Löschen im binären Suchbaum Ablauf Fall 3, Lösung b: je ein Arbeitspointer verweist auf den Löschknoten (20) und auf dessen Vorgänger (hier nicht existent, deshalb root-Pointer verwenden) nächstgrößerer Knoten (26) wird lokalisiert und Arbeitspointer auf ihn und seinen Vorgänger (33) gesetzt Knoten 26 wird herausgeschnitten und durch seinen Nachfolgerknoten 30 ersetzt 56 28
Löschen im binären Suchbaum left-Pointer im Vaterknoten 33 wird auf Knoten 30 umgebogen left-Pointer von 26 wird auf 14 gesetzt right-Pointer von 26 wird auf 33 gesetzt Vorgängerknoten des Löschknotens (hier der root-Pointer) wird auf die neue Wurzel 26 umgesetzt Wert 20 der alten Wurzel wird entnommen und der Knoten gelöscht fertig 57 Löschen im binären Suchbaum Fall 3, Fazit von Lösung b: deutlich aufwendiger zu programmieren als Lösung a aber auch deutliche Vorteile beim dadurch entstehenden Baum, insbesondere bei der Höhe deshalb wird Lösung b in der Regel bevorzugt 58 29
- 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 und 10: Merkmale der Rekursion Rekursion
- Seite 11 und 12: Beispiellösung Algorithmus zum L
- 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: Löschen im binären Suchbaum Fall
Löschen im binären Suchbaum<br />
left-Pointer im Vaterknoten 33 wird auf<br />
Knoten 30 umgebogen<br />
left-Pointer von 26 wird auf 14 gesetzt<br />
right-Pointer von 26 wird auf 33 gesetzt<br />
Vorgängerknoten des Löschknotens (hier<br />
der root-Pointer) wird auf die neue Wurzel<br />
26 umgesetzt<br />
Wert 20 der alten Wurzel wird entnommen<br />
<strong>und</strong> der Knoten gelöscht<br />
fertig<br />
57<br />
Löschen im binären Suchbaum<br />
Fall 3, Fazit von Lösung b:<br />
deutlich aufwendiger zu programmieren als<br />
Lösung a<br />
aber auch deutliche Vorteile beim dadurch<br />
entstehenden Baum, insbesondere bei der<br />
Höhe<br />
deshalb wird Lösung b in der Regel<br />
bevorzugt<br />
58<br />
29