Hey Leute, ich bin neu hier, also seht es mir nach, dass der Post evtl. nicht so schön aussieht.
Im Endeffekt steht meine Aufgabe schon hier drüber.
Ich habe einen Binären Suchbaum erstellt und befüllt. Übersichtshalber lasse ich den Code weg.
Nun will ich einen Knoten entfernen, der die selbe Nummer hat wie der als Number übergebene Parameter.
Hier mein Lösungsansatz:
public BinaryTreeNode search(int number, BinaryTreeNode post, BinaryTreeNode prev) {
if (post.getNumber()==number && post==top) {
top=top.getSmaller();
}
else if (post.getNumber()==number && post.equals(prev.getSmaller())) {
if (prev.getSmaller().getSmaller()==null) {
prev.setSmaller(null);
}
else {
prev.setSmaller(prev.getSmaller().getSmaller());
}
}
else if (post.getNumber()==number && post.equals(prev.getLarger())) {
if (prev.getLarger().getLarger()==null) {
prev.setSmaller(null);
}
else {
prev.setLarger(prev.getLarger().getLarger());
}
}
else if (post==top){
search (number,post=post.getSmaller(),prev=top);
search (number,post=post.larger,prev=top);
}
else {
search(number, post=post.getSmaller(),prev=prev.getSmaller());
search(number, post=post.getLarger(),prev=prev.getLarger());
}
return null;
}
Ich bin mir zeimlich sicher, dass ich wieder Code für Code geschrieben habe und dann gibt es eine Simple Lösung, auf die ich einfach nicht komme.
Ich hoffe, ihr Könnt mir helfen und danke für jede Antwort.
Im Endeffekt steht meine Aufgabe schon hier drüber.
Ich habe einen Binären Suchbaum erstellt und befüllt. Übersichtshalber lasse ich den Code weg.
Nun will ich einen Knoten entfernen, der die selbe Nummer hat wie der als Number übergebene Parameter.
Hier mein Lösungsansatz:
public BinaryTreeNode search(int number, BinaryTreeNode post, BinaryTreeNode prev) {
if (post.getNumber()==number && post==top) {
top=top.getSmaller();
}
else if (post.getNumber()==number && post.equals(prev.getSmaller())) {
if (prev.getSmaller().getSmaller()==null) {
prev.setSmaller(null);
}
else {
prev.setSmaller(prev.getSmaller().getSmaller());
}
}
else if (post.getNumber()==number && post.equals(prev.getLarger())) {
if (prev.getLarger().getLarger()==null) {
prev.setSmaller(null);
}
else {
prev.setLarger(prev.getLarger().getLarger());
}
}
else if (post==top){
search (number,post=post.getSmaller(),prev=top);
search (number,post=post.larger,prev=top);
}
else {
search(number, post=post.getSmaller(),prev=prev.getSmaller());
search(number, post=post.getLarger(),prev=prev.getLarger());
}
return null;
}
Ich bin mir zeimlich sicher, dass ich wieder Code für Code geschrieben habe und dann gibt es eine Simple Lösung, auf die ich einfach nicht komme.
Ich hoffe, ihr Könnt mir helfen und danke für jede Antwort.