migliorabile ha scritto:
tecnicamente:
devi realizzare un parser ricorsivo discendente per analizzare l'espressione, quindi usare lo stack per fare la valutazione dove per valutare (3 + 5*6) dovresti avere:
push 3
push 5
push 6
multiply // pop 6, pop 5 , push 5*6
add // pop 30, pop 3, push 3+30
pop // estrae il risultato
però ha detto che le espressioni contengono parentesi. inoltre, suppongo deffa dare la corretta precedenza agli operatori, per cui se ha 2*3+4 deve fare prima 2*3 e poi 5+4. Quindi in realtà la risposta più corretta mi pare il link di oregon. (inoltre, non è stata richiesta la valutazione dell'espressione, ma la conversione in notazione postfissa).