title image


Smiley Null Pointer Exception bei rekursiven Methodenaufruf
Hallo,



ich hänge im moment bei einem Algorithmus der einen binären Baum durchsuchen soll, und null zurückgeben soll, wenn der Knoten gefunden wird. Wenn ich diesen Algorithmus als schleife implementiere läuft er, allerdings liefert das Programm einen Null Pointer Exception wenn ich es rekursiv implementiere.

Mein Quellcode schaut im moment so aus

public class Baum

{

public Knoten search(int x, Knoten aktuellerKnoten)

{

if(x
{

search(x,aktuellerKnoten.getNextLeft());

}



if(x>aktuellerKnoten.getValue() && aktuellerKnoten.getNextLeft()!=null)

{

search(x,aktuellerKnoten.getNextRight());

}



if(x==aktuellerKnoten.getValue())

{

return null;

}



return aktuellerKnoten;

}



public void insert(int i)

{

Knoten aktuellerKnoten;

Knoten neu=null;



// Überprüfung auf einen leeren Baum

if(first==null)

{

neu=new Knoten(i);

setFirst(neu);

}

else

{

// Suche ob der Knoten bereits im Baum existiert

aktuellerKnoten=search(i, first);

}



public class Knoten

{

private int wert;

private Knoten nextLeft;

private Knoten nextRight;



public Knoten(int i)

{

wert=i;

nextLeft=null;

nextLeft=null;

}



public int getValue()

{

return wert;

}



public Knoten getNextLeft()

{

return nextLeft;

}



public Knoten getNextRight()

{

return nextRight;

}



public void setNextLeft(Knoten e)

{

nextLeft=e;

}

}

}



Der Fehler tritt offenbar in der Methode "search" auf, aber leider habe ich keine Ahnung warum, ich wäre daher über einen kleinen Hinweis, was ich noch an dem Quellcode modefizieren muß sehr dankbar.

Viele Grüsse

Dan


Windows ist ein Echtzeitbetriebssystem. Wer damit arbeiten will, muß echt Zeit haben! ;-)

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: