Mode de passage des paramètres en java
Bonjour tout le monde,
je suis un peu étonné devant un petit problème en java, sachant que ça fait très longtepmpe que je développe à l'aide de ce langage.
en effet, je voudrais créer un arbre binaire de recherche.
ci dessous le code source
Objet Noeud qui représente chaque noeud de larbre
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
public class Noeud implements Comparable {
private String mot=null;
private int nbrOccurence;
private int priorite;
private Noeud LeftNoeud;
private Noeud RightNoeud;
public Noeud(){ }
public Noeud(String mot, int nbrOccurence, int priorite){
this.mot=mot;
this.nbrOccurence=nbrOccurence;
this.priorite=priorite;
this.LeftNoeud=null;
this.RightNoeud=null;
}
...... |
Objet Index qui représente la racine de l'arbre
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
public class Index {
public Noeud Racine;
public Index()
{
}
public void addWord(String mot)
{
mot=mot.toLowerCase();
Noeud noeud=new Noeud(mot,1,0);
addWord(Racine, noeud);
}
private boolean addWord(Noeud Dic,Noeud noeud)
{
if(Dic==null)
{
Dic=noeud;
return true;
}
if(Dic.getMot().compareTo(noeud.getMot())==0)
{
Dic.setNbrOccurence(Dic.getNbrOccurence()+1);
return true;
}
if(Dic.getMot().compareTo(noeud.getMot())>0)
{
this.addWord(Dic.getLeftNoeud(), noeud);
return true;
}
if(Dic.getMot().compareTo(noeud.getMot())<0)
{
this.addWord(Dic.getRightNoeud(), noeud);
return true;
}
return false;
} |
La classe Main
Code:
1 2 3 4 5 6 7 8 9 10
|
public static void main(String[] args) {
// TODO code application logic here
Index index = new Index();
index.addWord("anssesami");
index.addWord("amal");
index.addWord("toto");
if(index.getRacine()==null)
System.out.println("c'est koi ce délire!! ");
} |
Même si j'ai ajouté des mots, la racine de l'index est toujours null !!!!:?
en effet, le problème est que lorsque j'appelle la méthode
addWord(Racine, noeud); cette instruction Dic=noeud; ne se rapporte pas sur la racine et pourtant dans la première appelle Dic et Racine sont deux références sur la même donnée
plzzz quelqu'un m'éxplique ce qui se passe
Merci de votre aide