Da IN a RPN

BHK1
Il problema è semplicissimo.
Come converto l'espressione $(5+3)+(4+5)*3+1+10$$/2$ $=41$
Quando trovo un operando lo restituisco immediatamente in output quando trovo una parentesi sinistra la carico sullo stack
quando trovo un operatore lo carico sullo stack
quando trovo una parentesi destra svuoto lo stack fino alla corrispondente parentesi sinistra e restituisco tutti gli operatori nel mezzo.
Mi verrebbe $5  3 + 4  5 + 3  1  10  2$ $ / + + * +$

Risposte
hamming_burst
ok, vuoi convertire l'espressione in notazione post-fissa. Perciò, qual è la tua domanda, sembra che te hai compreso il procedimento (o almeno mi pare). Devi scrivere l'algoritmo?

BHK1
chiedevo conferma per l'espressione in RPN

yoshiharu
"BHK":

Mi verrebbe $5  3 + 4  5 + 3  1  10  2$ $ / + + * +$


Essendo io brain-damaged l'ho eseguita sull'HP: fa 89 (!=41).
Ma cmq anche ad occhio qualcosa di strano ce l'ha, perche' il prodotto non sembra essere dove deve essere (a me verrebbe subito dopo il 3).

lorven
"BHK":
Il problema è semplicissimo.
Come converto l'espressione $(5+3)+(4+5)*3+1+10$$/2$ $=41$
Quando trovo un operando lo restituisco immediatamente in output quando trovo una parentesi sinistra la carico sullo stack
quando trovo un operatore lo carico sullo stack
quando trovo una parentesi destra svuoto lo stack fino alla corrispondente parentesi sinistra e restituisco tutti gli operatori nel mezzo.
Mi verrebbe $5  3 + 4  5 + 3  1  10  2$ $ / + + * +$


:shock:
A me risulta:
5 3 + 4 5 + 3 * + 1 + 10 2 / +

:-)

apatriarca
@lorven: mi risulta uguale alla tua.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.