La organización de la pila es muy efectiva para evaluar expresiones aritméticas. Las expresiones generalmente se representan en lo que se conoce como notación infija , en la que cada operador se escribe entre dos operandos (es decir, A + B). Con esta notación, debemos distinguir entre ( A + B )*C y A + ( B * C ) usando paréntesis o alguna convención de precedencia de operadores. Por lo tanto, el orden de los operadores y operandos en una expresión aritmética no determina únicamente el orden en que se realizarán las operaciones.
1. Notación polaca (notación de prefijo):
se refiere a la notación en la que se coloca el operador antes de sus dos operandos. Aquí no se requieren paréntesis, es decir,
+AB
2. Notación polaca inversa (notación de postfijo):
se refiere a la notación análoga en la que se coloca el operador después de sus dos operandos. Nuevamente, no se requieren paréntesis en la notación polaca inversa, es decir,
AB+
Las computadoras organizadas en pila son más adecuadas para la notación post-fix que la notación infix tradicional. Por lo tanto, la notación de infijo debe convertirse a la notación de sufijo. La conversión de notación infija a notación postfija debe tener en cuenta la jerarquía operativa.
Hay 3 niveles de precedencia para 5 operadores binarios como se indica a continuación:
Highest: Exponentiation (^) Next highest: Multiplication (*) and division (/) Lowest: Addition (+) and Subtraction (-)
Por ejemplo –
Infix notation: (A-B)*[C/(D+E)+F] Post-fix notation: AB- CDE +/F +*
Aquí, primero realizamos la aritmética dentro de los paréntesis (AB) y (D+E). La división de C/(D+E) debe hacerse antes de la suma con F. Después de eso, multiplique los dos términos dentro del paréntesis y corchete.
Ahora necesitamos calcular el valor de estas operaciones aritméticas usando una pila.
El procedimiento para obtener el resultado es:
- Convierta la expresión en notación polaca inversa (notación post-fix).
- Inserte los operandos en la pila en el orden en que aparecen.
- Cuando cualquier operador se encuentre, haga estallar los dos operandos superiores para ejecutar la operación.
- Después de la ejecución, inserte el resultado obtenido en la pila.
- Después de la ejecución completa de expresión, el resultado final permanece en la parte superior de la pila.
Por ejemplo –
Infix notation: (2+4) * (4+6) Post-fix notation: 2 4 + 4 6 + * Result: 60
Las operaciones de pila para esta evaluación de expresión se muestran a continuación:
Publicación traducida automáticamente
Artículo escrito por SUDIPTADANDAPAT y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA