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 Noeud {
private String etiquette;
private Noeud gauche;
private Noeud droit;
public Noeud(String etiquette, Noeud gauche, Noeud droit) {
this.etiquette = etiquette;
this.gauche = gauche;
this.droit = droit;
}
public Noeud(String etiquette) {
this(etiquette,null,null);
}
public double eval() {
double res = 0;
double g = 0;
double d = 0;
if(this.etiquette.equals("-") && this.gauche == null) this.droit.eval();
if(!estNombre(this.etiquette)) {
if(estNombre(this.gauche.etiquette) && estNombre(this.droit.etiquette)) {
Double a = new Double(this.gauche.etiquette);
Double b = new Double(this.droit.etiquette);
g = a.doubleValue();
d = b.doubleValue();
if(this.etiquette.equals("+")) res = g + d;
else if(this.etiquette.equals("/")) res = g / d;
else if(this.etiquette.equals("*")) res = g * d;
else res = g - d;
}
}
if(!estNombre(this.etiquette)) {
if(this.gauche != null) this.gauche.eval();
if(this.droit != null) this.droit.eval();
}
return res;
} |
Partager