Evaluación de expresiones aritméticas

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: 
 

  1. Convierta la expresión en notación polaca inversa (notación post-fix). 
     
  2. Inserte los operandos en la pila en el orden en que aparecen. 
     
  3. Cuando cualquier operador se encuentre, haga estallar los dos operandos superiores para ejecutar la operación. 
     
  4. Después de la ejecución, inserte el resultado obtenido en la pila. 
     
  5. 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *