Pushing stuff

master
ahmad 2022-12-22 10:29:56 +01:00
parent 063a981d93
commit bede6bfc88
2 changed files with 48 additions and 8 deletions

View File

@ -14,6 +14,7 @@ public class Baum {
if(wurzel == null) if(wurzel == null)
{ {
wurzel = new Knoten(wert); wurzel = new Knoten(wert);
return;
} }
wurzel.add(wert); wurzel.add(wert);
} }
@ -51,7 +52,7 @@ public class Baum {
{ {
return "Baum ist noch leer"; return "Baum ist noch leer";
} }
sb = new StringBuilder();
list.add(wurzel); list.add(wurzel);
wurzel.breitenSuche(); wurzel.breitenSuche();
@ -149,7 +150,7 @@ public class Baum {
{ {
if(linkesKind != null) if(linkesKind != null)
{ {
list.add(linkesKind); list.add(this.linkesKind);
} }
if(rechtesKind != null) if(rechtesKind != null)
{ {
@ -193,9 +194,7 @@ public class Baum {
{ {
linkesKind.linkesKind = zuLöschen.linkesKind; linkesKind.linkesKind = zuLöschen.linkesKind;
} }
} }
} }
@ -208,10 +207,40 @@ public class Baum {
if(value < wert) if(value < wert)
{ {
if(rechtesKind.value == wert) if(rechtesKind.value == wert)
rechtesKind = null; {
else if(rechtesKind.linkesKind == null && rechtesKind.rechtesKind == null) //Keine Kinder
{
rechtesKind = null;
}
else if(rechtesKind.linkesKind != null && rechtesKind.rechtesKind == null)
{
rechtesKind = rechtesKind.linkesKind;
}
else if(rechtesKind.linkesKind == null && rechtesKind.rechtesKind != null)
{
rechtesKind = rechtesKind.rechtesKind;
}
else
{
Knoten zuLöschen = rechtesKind;
rechtesKind = rechtesKind.rechtesKind.größterImTeilbaum();
rechtesKind.linkesKind = zuLöschen.linkesKind;
if(rechtesKind != zuLöschen.rechtesKind)
{
rechtesKind.rechtesKind = zuLöschen.rechtesKind;
}
}
}
else {
rechtesKind.remove(wert); rechtesKind.remove(wert);
} }
}
@ -223,9 +252,13 @@ public class Baum {
{ {
if(this.rechtesKind != null) if(this.rechtesKind != null)
{ {
return this.rechtesKind.größterImTeilbaum(); Knoten kind = this.rechtesKind.größterImTeilbaum();
if (rechtesKind == kind)
rechtesKind = null;
return kind;
} }
return this; return this;
} }

View File

@ -12,8 +12,15 @@ public static void main(String[] args) throws Exception
b1.add(27); b1.add(27);
b1.add(11); b1.add(11);
b1.add(85);
b1.add(45);
b1.add(43);
b1.add(46);
b1.remove(21); b1.remove(21);
b1.remove(45);
b1.inorder(); b1.inorder();