Está en la página 1de 3

NOTACION POLACA (POSFIJA)

Para evaluar la siguiente expresin aritmtica:

el orden que se debera seguir, segn la prioridad de los operadores


(que se especificarn ms adelante) y el uso de los parntesis, sera el
indicado con las flechas. Esto implica una dificultad que ya se coment
en la introduccin.
Para eliminar esta dificultad, se hace una traduccin preliminar
de las expresiones aritmticas que se llama notacin de cadena
polaca (denominada as en honor del matemtico polaco
Lukasiewicsz, que la origin). Esta notacin tiene la ventaja de que las
operaciones aparecen en el orden en que se efectan realmente la
evaluacin.
La idea bsica detrs de la notacin de cadenas polacas es que
los operadores se escriben al final y no en medio de las expresiones.
De manera que A + B se escribira como A B +. En esta forma, el
operador + se considera como una orden para sumar los valores de las
dos variables que lo preceden inmediatamente. Un ejemplo un poco
ms complejo podra ser:

La clave de la traduccin de notacin infija a posfija es la


prioridad de los operadores. A continuacin se muestra la prioridad de
los operadores utilizados as como el de las funciones que tambin se
consideran operadores, adems de los pasos a seguir para realizar la
traduccin, para ello recorreremos la expr. aritmtica infija desde la
izquierda hasta el final:
1. Cuando el elemento localizado
es una variable, se coloca
inmediatamente en el extremo Operadores Prioridad
derecho de la expresin
posfija que se est creando. Log, Exp, Sqrt 6
2. Cuando el elemento localizado - (unario) 5
es un operador o funcin, se ^ 4
coloca en el extremo superior *, /
de una pila siempre y cuando 3
la prioridad de este sea menor +, - 2
que el que est en la cima de ( 1
la pila. En caso contrario se
quitar dicho operador de la ) 0
pila y se colocar en la parte
derecha de la expresin
posfija y a continuacin se
vuelve a intentar colocar el
operador en la pila.
3. Cuando el elemento es un (
se coloca directamente en la
cima de la pila.
4. Cuando el elemento es un ),
los operadores de la pila se
transfieren uno a uno, al
extremo derecho de la
expresin posfija hasta llegar
a un (. Llegado a este punto,
este par de parntesis de
eliminan.

Evaluacin de una expresin aritmtica en notacin polaca


Para su evaluacin nos apoyaremos en una pila, donde
dejaremos tanto los resultados intermedios como el final. Se recorrer
la expr. aritmtica de izquierda a derecha, de forma que cuando nos
encontremos un operando (variable o constante) se incluir en la pila y
si nos encontramos un operador podremos hacer dos cosas:
a) a) Si el operador es unario (-, log, exp o sqrt) solo se aplicar
sobre primer operando de la pila.
b) b) Si el operador es binario (+, -, *, / y ^) se aplicar sobre los
dos primeros operandos de la pila.
Tanto en un caso como en el otro, el resultado se dejar en la
cima de la pila.
ALGORITMO PARA CONVERTIR EXPRESIONES INFIJAS EN
POSTFIJAS (RPN)
1. Incrementar la pila
2. Inicializar el conjunto de operaciones
3. Mientras no ocurra error y no sea fin de la expresin infija haz
o Si el carcter es:
1. PARENTESIS IZQUIERDO. Colocarlo en la pila
2. PARENTESIS DERECHO. Extraer y desplegar los valores hasta
encontrar parntesis izquierdo. Pero NO desplegarlo.
3. UN OPERADOR.
Si la pila esta vaca o el carcter tiene ms alta prioridad
que el elemento del tope de la pila insertar el carcter en la
pila.
En caso contrario extraer y desplegar el elemento del tope
de la pila y repetir la comparacin con el nuevo tope.
4. OPERANDO. Desplegarlo.
4. Al final de la expresin extraer y desplegar los elementos de la pila hasta que se
vace.

ALGORITMO PARA EVALUAR UNA EXPRESION RPN


1. Incrementar la pila
2. Repetir
o Tomar un caracter.
o Si el caracter es un operando colocarlo en la pila.
o Si el caracter es un operador entonces tomar los dos valores del tope de la
pila, aplicar el operador y colocar el resultado en el nuevo tope de la pila.
(Se produce un error en caso de no tener los 2 valores)
3. Hasta encontrar el fin de la expresin RPN.

También podría gustarte