Cómo convertir esta expresión infija A * [B + C * (D + e)] / F * (G + H) en una expresión posterior al arreglo

Para convertir de infijo a postfix, existen principalmente dos pasos:

  1. Lista de operadores y operandos
  2. Implemente reglas para convertir a post-fix

Niveles de prioridad de cada operador: –

3. – (negación unaria)
2. * /
1. + – (resta)

Nota: ¡Cuanto mayor sea el número, mayor será la prioridad!

Aquí en este ejemplo, estamos asumiendo corchetes como operando

Reglas:-

  • Si el token es operando, apílelo.
  • Si el token es operador, entonces
    • Haga estallar la pila hasta que encuentre un símbolo de número de prioridad más bajo que el actual. Se considerará que un paréntesis izquierdo entrante tiene mayor prioridad que cualquier otro símbolo. Un paréntesis izquierdo en la pila no se eliminará a menos que se encuentre un paréntesis derecho entrante.
      Los elementos de pila desplegados se escribirán en la salida.
    • Apila el símbolo actual.
    • Si un paréntesis derecho es el símbolo actual, despliegue la pila hacia abajo (e incluya) el primer paréntesis izquierdo. Escriba todos los símbolos excepto el paréntesis izquierdo en la salida (es decir, escriba los operadores en la salida).
    • Después de leer el último token, haga estallar el resto de la pila y escriba cualquier símbolo (excepto el paréntesis izquierdo) para la salida.

En nuestro ejemplo: –

A * [B + C * (D + e)] / F * (G + H)

Hay 10 operandos:

  1. UNA
  2. [
  3. si
  4. C
  5. re
  6. mi
  7. ]
  8. F
  9. sol
  10. H

Pasos:

  1. Pila: vacía, entrada: A * [B + C * (D + e)] / F * (G + H), salida: –
  2. Pila: vacía, entrada: * [B + C * (D + e)] / F * (G + H), salida: A
  3. Pila: *, Entrada: [B + C * (D + e)] / F * (G + H), Salida: A
  4. Pila: *, Entrada: B + C * (D + e)] / F * (G + H), Salida: A [
  5. Pila: *, Entrada: + C * (D + e)] / F * (G + H), Salida: A [B
  6. Pila: +, Entrada: C * (D + e)] / F * (G + H), Salida: A [B *
  7. Pila: +, Entrada: * (D + e)] / F * (G + H), Salida: A [B * C
  8. Pila: +, Entrada: * (D + e)] / F * (G + H), Salida: A [B * C
  9. Pila: + * (, Entrada: D + e)] / F * (G + H), Salida: A [B * C
  10. Pila: + * (, Entrada: + e)] / F * (G + H), Salida: A [B * CD
  11. Pila: + * (+, Entrada:)] / F * (G + H), Salida: A [B * CDe
  12. Pila: + *, Entrada:] / F * (G + H), Salida: A [B * CDe +
  13. Pila: + *, Entrada: / F * (G + H), Salida: A [B * CDe +]
  14. Pila: + /, Entrada: F * (G + H), Salida: A [B * CDe +] *
  15. Pila: + /, Entrada: * (G + H), Salida: A [B * CDe +] * F
  16. Pila: + *, Entrada: (G + H), Salida: A [B * CDe +] * F /
  17. Pila: + * (, Entrada: G + H), Salida: A [B * CDe +] * F /
  18. Pila: + * (, Entrada: + H), Salida: A [B * CDe +] * F / G
  19. Pila: + * (+, Entrada: H), Salida: A [B * CDe +] * F / G
  20. Pila: + * (+, Entrada:), Salida: A [B * CDe +] * F / GH
  21. Pila: + * (+), Entrada: Vacío, Salida: A [B * CDe +] * F / GH
  22. Pila: + *, Entrada: vacía, Salida: A [B * CDe +] * F / GH +
  23. Pila: +, Entrada: vacía, Salida: A [B * CDe +] * F / GH + *
  24. Pila: vacía, entrada: vacía, salida: A [B * CDe +] * F / GH + * +

Su respuesta final sería: A [B * CD e +] * F / GH + * +

Aplicar la regla BODMAS ,

Entonces, según BODMAS, primero resolveremos el soporte

Numerador.

A * [b + c * (d + e)]

A * [b + c * de +]

A * [b + cde + *]

A * [bcde + * +]

Abcde + * + *

Denominador

F * (g + h)

F * gh +

Fgh + *

Al dividir, [abcde + * + *] / [fgh + *]

Abcde + * + * fgh + * /.