• Keine Ergebnisse gefunden

Beuth Hochschule Knoten löschen in einem binären Baum WS17/18, S. 1

N/A
N/A
Protected

Academic year: 2021

Aktie "Beuth Hochschule Knoten löschen in einem binären Baum WS17/18, S. 1"

Copied!
3
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Beuth Hochschule Knoten löschen in einem binären Baum WS17/18, S. 1 Knoten löschen in einem binären Baum

Wir sehen uns im Papier Alg-BinBaumBoje.pdf die S. 2 an (einLongSpeicher50-Objekt mit 11 Knoten) und gleichzeitig im Papier Alg-Projekte.odt den vorgegebenen Teil der Klasse

LongSpeicher51.

Aufgabe-01: In der BinBaumBoje gibt es viele Variablen namens lub und rub.

Von welchem Typ sind diese Variablen?

Die folgenden Fragen beziehen sich alle auf die unveränderte BinBaumBoje (jede Löschung soll auf den

"vollen-11-Knoten-Baum" angewendet werden, und nicht auf eine durch vorausgehende Löschungen verkleinerte BinBaumBoje). "Der Knoten 35" soll heißen: "Der Knoten mit data gleich 35".

Von den beiden Reihungen namenslub undrub, die an jedem Knoten k hängen, sagen wir (wie allge- mein üblich), dass sie sich "im Knoten k" befinden, obwohl sie genau genommen außerhalb des Kno- tenobjekts hängen.

Aufgabe-02: Welcher Wert muss in der BinBaumBoje durch welchen Wert ersetzt werden, um die fol- genden Knoten zu löschen?

Zu löschender

Knoten In welchem Knoten muss was durch was ersetzt werden?

11 Im Knoten 18 muss [<300>] durch [<110>] ersetzt werden.

23 68 35 27

Beim Löschen von Knoten gibt es vier verschiedene Fälle.

Davon ist einer ganz einfach, zwei weitere sind einfach, und nur der vierte Fall ist ein bisschen komplizierter.

In den folgenden Beispielen soll immer der Knoten mit dem Schlüssel 50 gelöscht werden.

Fall 1: Beide Unterbäume des zu löschenden Knotens sind leer (ganz einfach, kann wahlweise wie Fall 2 oder wie Fall 3 behandelt werden).

Fall 2: Der linke Unterbaum des zu löschenden Knotens ist leer Fall 3: Der rechte Unterbaum des zu löschenden Knotens ist leer

10

50

70 Fall 2

10

50

30

Fall 3 10

50

70

10

50

30

Fall 4: Beide Unterbäume des zu löschenden Knotens sind nicht-leer

(2)

S. 2, WS17/18 Knoten löschen in einem binären Baum Beuth-Hochschule Im Papier Alg-BinBaumBoje.pdf:

Aufgabe-03: Welche Knoten gehören beim Löschen zu welchem Fall?

Welche Knoten haben 2 leere Unterbäume (und gehören somit zum Fall 1)?

Welche Knoten haben einen leeren linken Unterbaum (und gehören somit zum Fall 2)?

Welche Knoten haben einen leeren rechten Unterbaum (und gehören somit zum Fall 3)?

Welche Knoten haben 2 nicht-leere Unterbäume (und gehören somit zum Fall 4)?

Fall 1:

Beispiel: Um den Knoten 23 zu löschen

brauchen wir eineKnoten[]-Variablekr mit dem Wert[<310>].

Dann hat dieKnoten-Variablekr[0] den Wert[<320>].

Den müssen wir durch den Wert[<110>] ersetzen.

Aufgabe-04: Beschreiben Sie ganz entsprechend

was wir brauchen und tun müssen, um den Knoten 69 zu löschen.

Im Papier Alg-BinBaumBoje.pdf Fall 2 oder 3:

Beispiel: Um den Knoten 35 zu löschen

brauchen wir eineKnoten[]-Variablekr mit dem Wert[<230>].

Dann hat die Knoten-Variablekr[0] den Wert[<240>].

Den müssen wir durch den Wert[<340>] ersetzen.

Aufgabe-05: Beschreiben Sie ganz entsprechend

was wir brauchen und tun müssen, um den Knoten 68 zu löschen.

(3)

Beuth Hochschule Knoten löschen in einem binären Baum WS17/18, S. 3 Fall 4: Beide Unterbäume des zu löschenden Knotens L (mit Schlüssel 50) sind nicht leer

10

50

70 30

38

...

40

1. Daten kopieren

10

45

70 30

...

Fall 4 2. Knoten

löschen 45

38

40 45

Schritt 4.1.: Wir gehen zum linken Unterbaum von L (der beginnt hier mit 30)

Schritt 4.2.: In diesem Unterbaum suchen wir den KnotenMAX mit dem größten Schlüssel (hier: 45) Der rechte Unterbaum vonMAX ist sicherlich leer (sonst würden darin ja Schlüssel stehen, die größer sind als der Schlüssel vonMAX. Aber dann wäreMAX nichtMAX).

Schritt 4.3.: Wir kopieren die Daten ausMAX in den Knoten L (in der Graphik: 45-> 50) Schritt 4.4.: Wir löschen den KnotenMAX (in der Graphik: den Knoten mit Schlüssel 45)

Anmerkung: Das Löschen vonMAX ist ein Fall 3 oder ein Fall 1, also einfach oder ganz einfach.

Im Papier Alg-BinBaumBoje.pdf Fall 4:

Was müssen wir machen, um den Knoten 27 zu löschen?

1. Denlong-Wert 23 (den größten Wert im linken Unterbaum des Knoten 27) in den Knoten 27 kopieren (d.h. 23 durch 27 ersetzen).

2. Den Knoten 23 löschen ([<320>] durch[<110>] ersetzen) Aufgabe-06: Beschreiben Sie ganz entsprechend:

Was müssen wir machen, um den Knoten 45 zu löschen?

Schreiben Sie jetzt (für das Projekt 5,LongSpeier50, die Methodeloesche)

Tipp 1: Den Fall 1 brauchen wir nicht separat zu behandeln, sondern können ihn als Fall 2 oder Fall 3 behandeln lassen.

Tipp 2: In Rumpf vonloesche sollten wir (wie fast immer) den einfachsten Fall zuerst behandeln.

Aufgabe-07: Wann liegt beim Löschen eineslong-Werte n der einfachste Fall vor?

Referenzen

ÄHNLICHE DOKUMENTE

Für die 14 Beispiel-Schlüssel ist hash03 nicht besonders gut, denn sie lässt 5 der 10 Listen leer und bewirkt, dass 8 der 14 Schlüssel in dieselbe Liste (ht[5]) eingefügt werden..

Oft wird als selbstverständlich vorausgesetzt, dass Zahlen als 10-er-Zahlen (Dezimalzahlen) dargestellt werden und man unterscheidet dann auch nicht zwischen Eigenschaften

Computer-gestützte Programme für das Ge- wichtsmanagmeent seien zwar weniger wirk- sam als persönliche Interventionen, aber auf jeden FAll besser als nichts und auch ange- sichts

Wenngleich das Konzept quattromodaler Knoten einen gewissen Interpretationsspielraum lässt – so werden etwa die Pipeline, Normal- und Breitspur sowie die Binnen- und

Hätte die 5 nicht gleich beim ersten Mal die &#34;28&#34; einfach weiterleiten sollen, so dass Knoten 28 die Nachricht nicht erneut über die Strecke 28 → 5 senden muss..

Knoten 5 weiss nicht, ob die 28 die gegenwärtige Phase tatsächlich überlebt - dann wäre die Nachricht &#34;28&#34; fälschlicherweise weitergeleitet worden.. Zeitkomplexität

„ Siehe Bild: Für jeden Knoten sind alle Daten links kleiner und alle Daten rechts größer als die Daten des

Für die Beurteilung von abweichenden Situationen wird angenommen, dass sich die Störwirkung in Abhängigkeit der Anzahl Stop &amp; Go Ereignisse verändert. Bei einer minimal