View Single Post
Old 29-06-2008, 15:41   #2
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2775
Ciao, io vedo un errore nella insert, però in teoria la get dovrebbe stamparti almeno il valore della radice (o NULL se non ci hai messo niente).
L'errore è qui:
Codice:
else{
   if(data>root.data){
      this.insert(root.destra,data);
      System.out.print("a"); //testcase
   }else{
      this.insert(root.sinistra, data);
      System.out.print("a"); //testcase
   }
}
Quando richiami this.insert passi un riferimento a root.destra o a root.sinistra, solo che se questi non sono stati inizializzati stai passando un riferimento a NULL, quindi i nodi che creerai in quella invocazione andranno persi. Puoi risolvere così:
Codice:
else{
   if(data>root.data){
      if(root.destra==NULL)
         root.destra=new node();
      this.insert(root.destra,data);
      System.out.print("a"); //testcase
   }else{
      ...
wingman87 è offline   Rispondi citando il messaggio o parte di esso