Hola a todos!
Tengo que entregar una asignacion en la cual "Dado un entero N y N expresiones aritméticas expresadas en notación prefija, postfija o infija, dar el resultado de evaluar dicha expresión y encuentre
la altura"
Todo me va perfecto hasta que intento encontrar la altura.
La entrada del ejemplo es:
2
*+234
((2+1)-5)+(5*3)
y la salida deberia ser
Expresión 1:
Evaluación: 20
Notación Postfija: 23+4*
Altura: 2
Yo estoy usando para calcular la altura:
Código C++:
Ver originalint Altura(Nodo *t)
{
int a,b;
if (t->hijo_izq == NULL && t->hijo_der == NULL)
return 1;
else
{
a=Altura(t->hijo_izq);
b= Altura(t->hijo_der);
if (a<b) return b+1;
else return a+1;
}
};
y para el llamado desde el main:
(parte del codigo post)
Código C++:
Ver originalNodo *a=post.obtener_raiz(), *auxiliar = post.obtener_raiz();
post.evaluar_res(a); a = post.obtener_raiz();
cout<<"Evaluacion: "<<*(a->res)<<endl;
cout<<"Notacion prefija: ";
post.preOrden(auxiliar);
cout<<"Altura: " ;
post.Altura(auxiliar);
La salida me da:
Expresión 1:
Evaluación: 20
Notación Postfija: 23+4*
y no tengo ni idea de que pasa...Me podrian ayudar?
Gracias!