Bonjour, je ne sais pas si ma question est trop "idiote" ou non mais je débute en java et j'espere que vous serez indulgents!
J'ai créé une classe Expression qui m'a lair de bien fonctionner et j'ai créé une deuxieme classe ArbreNAire avec un constructeur partant d'une expression et créant un Arbre (d'attributs un noeud de type expression et une liste des "fils" de l'expression)
Par exemple pour l'expression 5 + 2*x
L'arbre serait : noeud : +
Liste : (noeud 5, liste vide), (noeud *, liste 2,x)
Mais voilà : au moment où je veux rajouter les fils à la liste : fils.add( ..) On me pointe une erreur Null pointer alors que je rajoute des éléments! Voici le code :
public class ArbreNAire {
private Expression noeud;
private List fils;
public ArbreNAire() {
noeud = null;
fils = new LinkedList();
}
public ArbreNAire (Expression exp) {
if (exp.typage() == "constante" || exp.typage() == "variable") {
noeud = exp;
fils = null;
}
else if (exp.typage() == "terme") {
noeud = exp.retourneOperateur();
fils.add(new ArbreNAire(exp.retournePremierOperande()));
fils.add(new ArbreNAire(exp.retourneDeuxiemeOperande()));
}
else if (exp.typage() == "application") {
noeud = exp.retourneFonction();
fils.add(new ArbreNAire(exp.retourneargument()));
}
}
public static void main (String Args []) {
Expression expr = new Expression (new Expression('x'), '+',new Expression( 3));
ArbreNAire arb = new ArbreNAire(expr);
}
}
Exception in thread "main" java.lang.NullPointerException
at ArbreNAire.<init>(ArbreNAire.java:24) [c'est à dire au premier fils.add=
at ArbreNAire.main(ArbreNAire.java:35) (c'est à dire la dernière ligne)
J'espere que vous trouvrez mon erreur
MErci d'avance!
Ethan le débutant en java
Partager