(2-3)*4+(5+8)/2
Necesito meter esa expresion en un arbol de expresiones para evaluarla, desplegarla en forma infija, postfija y prefija. Toda la estructura del árbol y sus recorridos ya se como hacerlo.
Ahora, el problema es para meter la expresión al arbol, pues necesito convertirla a su forma postfija y luego ingresar cada caracter como un nodo, el problema es que no se como recorrer ese char * para ir analizando cada caracter e ingresarlo a una pila o a la expresión postfija según corresponda.
Imagino que el código sería algo así:
Código C++:
Ver original
char * infijoAPostfijo(char *infija){ Pila *pila = new Pila(); char *postfijo = ""; for(int i = 0; StrComp(infija[i], "\0") != 0; i++){ //Y aqui hago toda la evaluacion para saber si //Es un número o un operador y acomodarlo en //La expresion postfija } }
Pero el problema que tengo es que cuando hago el StrComp, para saber si llegó al final me da un error:
[C++Error] UAplicacion.cpp(24): Cannot convert 'int' to 'char *'.
Y en fin, no se como podría recorrer el char * para ir evaluando caracter por caracter.
Y otro problema que tendría es que necesito saber si un caracter es un número o no, imagino que se podría haciendo una simple comparación como
Código C++:
Ver original
//Pregunto si es mayor o igual a 0 y menor o igual a 9 if(StrComp(caracter, "0") >= 0; && StrComp(caracter, "9")<= 0)
Si alguien me puede ayudar, se lo agradecería mucho.