Para convertir de infijo a postfix, existen principalmente dos pasos:
- Lista de operadores y operandos
- 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!
- Cómo resolver x ^ 1/2 – (x-9) ^ 0.75 = -3
- ¿Qué línea recta pasa por el punto (4,8) y es perpendicular a la línea 2x + 10y-2 = 0?
- Cómo simplificar [matemáticas] \ sqrt {\ sqrt {5} -12i} [/ matemáticas]
- ¿Qué es la integración de cosx tan2x?
- ¿Alguien puede simplificar la prueba de inmunoensayo de quimioluminiscencia (CLIA)?
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:
- UNA
- [
- si
- C
- re
- mi
- ]
- F
- sol
- H
Pasos:
- Pila: vacía, entrada: A * [B + C * (D + e)] / F * (G + H), salida: –
- Pila: vacía, entrada: * [B + C * (D + e)] / F * (G + H), salida: A
- Pila: *, Entrada: [B + C * (D + e)] / F * (G + H), Salida: A
- Pila: *, Entrada: B + C * (D + e)] / F * (G + H), Salida: A [
- Pila: *, Entrada: + C * (D + e)] / F * (G + H), Salida: A [B
- Pila: +, Entrada: C * (D + e)] / F * (G + H), Salida: A [B *
- Pila: +, Entrada: * (D + e)] / F * (G + H), Salida: A [B * C
- Pila: +, Entrada: * (D + e)] / F * (G + H), Salida: A [B * C
- Pila: + * (, Entrada: D + e)] / F * (G + H), Salida: A [B * C
- Pila: + * (, Entrada: + e)] / F * (G + H), Salida: A [B * CD
- Pila: + * (+, Entrada:)] / F * (G + H), Salida: A [B * CDe
- Pila: + *, Entrada:] / F * (G + H), Salida: A [B * CDe +
- Pila: + *, Entrada: / F * (G + H), Salida: A [B * CDe +]
- Pila: + /, Entrada: F * (G + H), Salida: A [B * CDe +] *
- Pila: + /, Entrada: * (G + H), Salida: A [B * CDe +] * F
- Pila: + *, Entrada: (G + H), Salida: A [B * CDe +] * F /
- Pila: + * (, Entrada: G + H), Salida: A [B * CDe +] * F /
- Pila: + * (, Entrada: + H), Salida: A [B * CDe +] * F / G
- Pila: + * (+, Entrada: H), Salida: A [B * CDe +] * F / G
- Pila: + * (+, Entrada:), Salida: A [B * CDe +] * F / GH
- Pila: + * (+), Entrada: Vacío, Salida: A [B * CDe +] * F / GH
- Pila: + *, Entrada: vacía, Salida: A [B * CDe +] * F / GH +
- Pila: +, Entrada: vacía, Salida: A [B * CDe +] * F / GH + *
- Pila: vacía, entrada: vacía, salida: A [B * CDe +] * F / GH + * +
Su respuesta final sería: A [B * CD e +] * F / GH + * +