Fix für das Löschen.

Hoffentlich korrekt ;-)
main
Oliver Hummel 2022-12-20 23:21:26 +01:00
parent f8c0e96fdb
commit 7ff6dfd379
1 changed files with 8 additions and 5 deletions

View File

@ -96,19 +96,22 @@ public class Baum {
if (links.wert == wert) { if (links.wert == wert) {
if (links.links == null && links.rechts == null) // keine Kinder if (links.links == null && links.rechts == null) // keine Kinder
links = null; links = null;
else if (links.links != null && links.rechts == null) // linkes Kind else if (links.links != null && links.rechts == null) // nur linkes Kind
links = links.links; links = links.links;
else if (links.rechts != null && links.links == null) // rechtes Kind else if (links.rechts != null && links.links == null) // nur rechtes Kind
links = links.rechts; links = links.rechts;
else { else {
Knoten alt = links; Knoten zuLöschen = links;
links = links.links.größterImTeilbaum(); links = links.links.größterImTeilbaum();
links.links = alt.links;
links.rechts = alt.rechts; if (links != zuLöschen.links) // den linken Knoten nur ändern, wenn es einen Teilbaum gibt
links.links = zuLöschen.links;
links.rechts = zuLöschen.rechts;
} }
} else } else
links.remove(wert); links.remove(wert);
if (wert > this.wert && rechts != null) if (wert > this.wert && rechts != null)
// TODO Löschen komplettieren
if (rechts.wert == wert) if (rechts.wert == wert)
rechts = null; rechts = null;
else else