Tienes que mantener la jerarquí de operaciones?? Si no es así, haz esto:
Código:
Pila operadores, operandos;
while(tengo tokens){
if(el toquen es un operador)
operadores.push(token);
else
operandos.push(token);
}
// Y ahora operar
while(operadores no esté vacío){
op = operadores.pop();
op1 = operandos.pop();
op2 = operandos.pop();
resultado = op1 op op2; // 635 + 67 ,por ejemplo
operandos.push(resultado);
}
final = operandos.pop(); // Este es el resultado
Se trata de ir apilando las cosas en pilas separadas, y al operar usar el operador dle tope de la pila y los dos operandos del tope de la otra pila.