|
|||||||
|
|
|
![]() |
|
|
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: 2780
|
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 21:26. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:14.



















