G
Guest
Gast
hi
ich bin gerade dabei ein prob für einen AVL Baum zu schreiebn. klappt auch soweit so gut nur leider kann ich nur ein paar zahlen einlesen und dann bekomm ich nen fehler mit name Stackoverflow.
soweit ich weiss ist das eine fehlermeldung wenn sich rekursive methoden zu oft selbstaufrufen.
die methode wo es vor kommt sieht so aus:
upin(k.v); scheint der übeltäter zu sein. nur leider hab ich keinen plan wie ich die methode anders schreiben soll damit ich keinen stackoverflow mehr bekomme.
kann mir da einer helfen?
mfg
nixblik
ich bin gerade dabei ein prob für einen AVL Baum zu schreiebn. klappt auch soweit so gut nur leider kann ich nur ein paar zahlen einlesen und dann bekomm ich nen fehler mit name Stackoverflow.
soweit ich weiss ist das eine fehlermeldung wenn sich rekursive methoden zu oft selbstaufrufen.
die methode wo es vor kommt sieht so aus:
Code:
public void upin(AVLknoten k){
//falls ich in der Wurzel bin:
if (k == Wurzel){
//Balancewerte anpassen:(vereinfacht)
k.b = (Tiefe(k.r) - Tiefe(k.l));
//eventuell Rotieren um die AVL-Bedingung widerherzustellen:
if (Math.abs(k.b) >= 2)
rotiere(k);
return;
}
//Balancewerte anpassen:(vereinfacht)
k.b = (Tiefe(k.r) - Tiefe(k.l));
//eventuell Rotieren um die AVL-Bedingung widerherzustellen
if (Math.abs(k.b) >= 2){
rotiere(k);
k = z;
}
//rekursiver Aufruf von upin für k.v
upin(k.v);
}
upin(k.v); scheint der übeltäter zu sein. nur leider hab ich keinen plan wie ich die methode anders schreiben soll damit ich keinen stackoverflow mehr bekomme.
kann mir da einer helfen?
mfg
nixblik