|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Apr 2006
Messaggi: 22462
|
[java] problema con albero di ricerca binario
sto implementando un classe che gestica un albero di ricerca binario
e ho scritto questo codice Codice:
public class tree { private node root=new node(); private void insert(node root,int data){ if(root==null){ root=new node(); root.data=data; System.out.println(data);//testcase } else{ if(root.data==null){ root.data=data; } 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 } } } } public void insert(int data){ this.insert(root, data); } public void get(){ this.get(root); } private void get(node root){ if(root==null)return; else{ this.get(root.sinistra); System.out.println(root); this.get(root.destra); } } } class node{ node sinistra,destra; Integer data; @Override public String toString(){ return data.toString(); } } uso netbeans 6.1
__________________
amd a64x2 4400+ sk939;asus a8n-sli; 2x1gb ddr400; x850 crossfire; 2 x western digital abys 320gb|| asus g1
Se striscia fulmina, se svolazza l'ammazza |
![]() |
![]() |
![]() |
#2 |
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 } } 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{ ... |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Apr 2006
Messaggi: 22462
|
grazie infinite; ho risolto;
adesso la classe fa quel che deve fare comunque prima il get non stampava nemmeno null; comunque ora che ho risolto credo che il problema sia risoltp
__________________
amd a64x2 4400+ sk939;asus a8n-sli; 2x1gb ddr400; x850 crossfire; 2 x western digital abys 320gb|| asus g1
Se striscia fulmina, se svolazza l'ammazza |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Sep 2006
Città: Catania
Messaggi: 742
|
L'inserimento così non va meglio?
Codice:
public void insert(node root, int data) { if (root == null) root = new Node(data) else if (data > root.data) { this.insert(root.destra, data); System.out.print("a"); //testcase } else if (data < root.data) { this.insert(root.sinistra, data); System.out.print("a"); //testcase } } ![]()
__________________
Voglio sapere di che tessuto deve essere un discorso per non fare neanche una piega Alternativa ai pacchi di NLITE MacBook & Canon Ixus 80 Ultima modifica di feboss : 29-06-2008 alle 20:26. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:24.