Programme en java ne marche pas
sofi
-
sofi -
sofi -
Bonjour,
En faite, dans mon programme je voudrai éclater une arbre 2-3-4 (c'est à dire avoir un niveau +1)
mais j'ai pas arrivé : voilà mon code et la structure de l'arbre.
le bug est :java.lang.NullPointerException
au niveau de l'instruction nouvelArbre.fils1.Element[0]=A.Element[0];
Je pense parce que j'ai pas fais un new table dans les fils mais je ne sais comment je peux résoudre se problème en plus si l'éclatement est juste ou non ?
En faite, dans mon programme je voudrai éclater une arbre 2-3-4 (c'est à dire avoir un niveau +1)
mais j'ai pas arrivé : voilà mon code et la structure de l'arbre.
public class Abre2_3_4 {
int [] Element= new int [3];
Abre2_3_4 fils1;
Abre2_3_4 fils2;
Abre2_3_4 fils3;
Abre2_3_4 fils4;
int nbrefils;
Abre2_3_4 (){
}
private void eclate(Abre2_3_4 A) {
// TODO Auto-generated method stub
Abre2_3_4 nouvelArbre=new Abre2_3_4();
System.out.println("==="+A.Element[0]);
if(A.Element.length==3)
{
nouvelArbre.Element[0]=A.Element[1];
nouvelArbre.fils1.Element[0]=A.Element[0];
nouvelArbre.fils2.Element[0]=A.Element[2];
nouvelArbre1(nouvelArbre.Element,nouvelArbre1(nouvelArbre.fils1.Element,A.fils1,A.fils2),nouvelArbre1(nouvelArbre.fils2.Element,A.fils3,A.fils4));
}
}
le bug est :java.lang.NullPointerException
au niveau de l'instruction nouvelArbre.fils1.Element[0]=A.Element[0];
Je pense parce que j'ai pas fais un new table dans les fils mais je ne sais comment je peux résoudre se problème en plus si l'éclatement est juste ou non ?
A voir également:
- Programme en java ne marche pas
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Waptrick java voiture - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
velArbre.fils1=new Abre2_3_4();
nouvelArbre.fils2=new Abre2_3_4();
mais le bug est toujours là ??!!
dans le code ajouterelement ; j'ai fais 4 cas:selon le nombre des fils dans l'arbre
* public void AjouterElement(int Elem , Abre2_3_4 A) { int nobrfils = A.nbrelement(A.Element)+1; if(A.ArbreVide()) { A.Element[0]=Elem; } else { switch(nobrfils) { case(2): { if(Elem<A.Element[0]) { if( A.nbrelement(A.fils1.Element)==3) { eclate(fils1); } else { A.Element[nbrelement(A.fils1.Element)]=Elem; tri.triBulle(A.Element); } AjouterElement(Elem,fils1); } else { eclate(fils2); AjouterElement(Elem,fils2); } break; } case(3): { if(Elem<A.Element[0]) { if(nbrelement(A.fils1.Element)==3) { eclate(fils1); } else { A.Element[nbrelement(A.fils1.Element)]=Elem; tri.triBulle(A.Element); } AjouterElement(Elem, fils1); } else if(A.Element[0]<Elem && Elem<A.Element[1]) { if(A.Element.length==3) { eclate(fils2); } else { A.Element[nbrelement(A.fils2.Element)]=Elem; tri.triBulle(A.Element); } AjouterElement(Elem, fils2); } else { if(nbrelement(A.fils3.Element)==3) { eclate(fils3); } else { A.Element[nbrelement(A.fils3.Element)]=Elem; tri.triBulle(A.Element); } AjouterElement(Elem, fils3); } break; } case(4): { if(Elem<A.Element[0]) { if(nbrelement(A.fils1.Element)==3) { eclate(fils1); } else { A.fils1.Element[nbrelement(A.fils1.Element)]=Elem; tri.triBulle(A.Element); break; } AjouterElement(Elem, fils1); } else if(A.Element[0]<Elem && Elem<A.Element[1]) { if(nbrelement(A.fils3.Element)==3) { eclate(fils3); } else { A.Element[A.Element.length+1]=Elem; tri.triBulle(A.Element); } } else if(A.Element[1]<Elem && Elem<A.Element[2]) { if(nbrelement(A.fils2.Element)==3 ) { eclate(fils2); } else if(A.fils2==null) { A.Element[0]=Elem; } else { A.Element[nbrelement(A.fils2.Element)]=Elem; tri.triBulle(A.fils2.Element); } AjouterElement(Elem, fils2); } else { if(nbrelement(A.fils4.Element)==3) eclate(fils4); else {A.Element[nbrelement(A.fils4.Element)]=Elem; tri.triBulle(A.fils4.Element);} AjouterElement(Elem, fils4); } break; } } } }