Añadir [
, ]
como operadores en el interior de inicio y final de la cadena a continuación:
números leídos que llenen pila y leer operadores y hacer lo mismo, cuando se enriquece el operador cuyo valor es menor o igual que el operador anterior en la pila POP operador anterior y actúa sobre los números disponibles en la pila de números: *: 3, /: 3,): 4, +: 1, -: 1
[12+34+4*56] ==>
Round 1: Numbers Stack: 12, Operator stack:[
Round 2: Numbers Stack: 12, Operator stack:[, +(1)
Round 3: Numbers Stack:12,34, Operator stack: [,+(1)
Round 4: Numbers Stack:12,34, Visited new operator with same or lower value (1) remove previous operator and pop 2 number from number stack and operate on them: So
Round 4: Numbers Stack:46, Operator stack: [,+(1)
Round 5: Numbers Stack:46,4 , Operator stack: [,+(1)
Round 6: Numbers Stack:46,4 , Operator stack: [,+(1),*(2)
Round 7: Numbers Stack:46,4,56, Operator stack: [,+(1),*(2)
Round 7: Numbers Stack:46,4,56, Operator stack: [,+(1),*(2) now operator item `]` want to be add, and it's priority is lower than all operators so operators sould be remove from stack and by each operator one number going to be removed:
Round 7: Numbers Stack:46,224 Operator stack: [,+(1),
Round 8: Numbers Stack:270 Operator stack: [,
Round 8: return 270, because ']' intered in Operator stack
"Doing it?" ¿Qué quiere decir con esto? –
@ Livio M. - Supongo que quiere calcular el resultado de la expresión incrustada dentro de la cadena. –
@ Øyvind Bråthen, sí, tienes razón –