This tree represents the following logical operation:
(((5 + 3) / 2) + ((1 - 5) * 2))
Does anyone know how to calculate it? You can use any data structure I have used the following:
public class Elem{
char operacion;
int numero;
boolean esOperacion;
}
public class Nodo{
Elem contenido;
Nodo izq;
Nodo der;
Nodo padre;
}
public class ArbolBinario{
Nodo raiz;
public int calcular(){
return(calcular(0,root));
}
private int calcular(int resultado, Nodo a){
if(a == null){
return(resultado);
}else if(a.esOperacion){
if(a.left != null && a.rigth != null){
if(operacion.equals('+'){
return(calcular(resultado,a.izq) + calcular(resultado, a.der);
}else if(operacion.equals('-'){
return(calcular(resultado,a.izq) - calcular(resultado, a.der);
}else if(operacion.equals('*'){
return(calcular(resultado,a.izq) * calcular(resultado, a.der);
}else{
return(calcular(resultado,a.izq) / calcular(resultado, a.der);
}
//POR AQUI SEGUIRIA PERO ESTOY BASTANTE SEGURO DE QUE HAY FORMAS MEJORES DE HACERLO O DE QUE ESTA MAL
}
}
}
}