Para realizar este codigo sobre Conversión de una Expresión
Matemática en Notación Infija a Notación Postfija me base en el Algoritmo shunting yard.
Un poco de Teoría:
Notaciones:
PreFija:
La
Expresión o Notación PreFija nos indica que el operador va antes de
los operandos sus características principales son:
-Los
operandos conservan el mismo orden que la notación infija
equivalente.
-No
requiere de paréntesis para indicar el orden de precedencia de
operadores ya que el es una operacion.
-Se
evalúa de izquierda a derecha hasta que encontrémosle primer
operador seguido inmediatamente de un par de operandos.
-Se
evalúa la expresión binaria y el resultado se cambia como un nuevo
operando. Se repite este hasta que nos quede un solo resultado.
Notación
prefija: El orden es operador, primer operando, segundo operando
InFija:
La
Expresión o Notación InFija es la forma mas común que utilizamos
para escribir expresiones matemáticas, estas notaciones se refiere a
que el operador esta entre los operandos. La notación infija puede
estar completamente parentizada o puede basarse en un esquema de
precedencia de operadores así como el uso de paréntesis para
invalidar los arreglos al expresar el orden de evaluación de una
expresión:
3*4=12
3*4+2=14
3*(4+2)=18
Notación
infija: La notación habitual. El orden es primer operando, operador,
segundo operando.
PosFija:
Como
su nombre lo indica se refiere a que el operador ocupa la posición
después de los operandos sus características principales son:
-El
orden de los operandos se conserva igual que la expresión infija
equivalente no utiliza paréntesis ya que no es una operación
ambigua.
-La
operación posfija no es exactamente lo inverso a la operación
prefija equivalente:
(A+B)*C
AB+C*
Notación
postfija: El orden es primer operando, segundo operando, operador.
Antes
de convertir la notación tenemos que verificar si la expresión
matemática esta correctamente balanceada, para eso agregue el
código implementado en el post deBalanceo de símbolos de
agrupación.
Y
aqui la implementacion en C++ de conversión de una expresion
matemática valida en notacion Infija a Postfija
Implementacion en C++:
El codigo Completo lo puedes descargar desde aqui
SOCIALIZA ESTO →