Sei sulla pagina 1di 7

Existen tres notaciones bsicas para representar expresiones

matemticas; infija, prefija ypostfija.


La infija es la ms conocida porque es la que ms se utiliza, por ejemplo: (1+2)*(3-4).
En forma prefija se representara como *+12-34, y en forma postfija sera 12+34-*.

Notacin prefija: El orden es operador, primer operando, segundo


operando.

Evaluacin de expresiones prefijas


Ahora veamos cmo evaluar expresiones prefijas usando el mismo ejemplo: *+12-34
Es comn evaluar las expresiones prefijas utilizando un algoritmo ms complejo que el de las
postfijas y empleando para ello varios stacks. Esto no tiene mucho sentido y es innecesario
complicarse la vida porque en realidad el proceso es exactamente el mismo pero en orden
inverso (de derecha a izquierda), por lo tanto lo haremos igual que con las expresiones postfijas,
usando un solo stack:

4 Es un operando, se mete en el stack.

STACK[ 4 ]
3 Es un operando, se mete en el stack.

STACK[ 34 ]
Es un operador, como es un operador binario (necesita dos elementos) se sacan del

stack y se realiza la operacin (3 4) y el resultado se mete en el stack.


STACK[ (-1) ]
2 Es un operando, se mete en el stack.

STACK[ 2(-1) ]
1 Es un operando, se mete en el stack.

STACK[ 12(-1) ]
+ Es un operador binario, se sacan dos elementos del stack y se realiza la operacin (1

+ 2) y el resultado se mete en el stack.


STACK[ 3(-1) ]
* Es un operador binario, se sacan dos elementos del stack y se realiza la operacin (3 *

(-1)) y el resultado se mete en el stack.


STACK[ (-3) ]
Resultado final: -3

Evaluacin de expresiones mediante rboles


Tambin se puede utilizar un rbol para evaluar las expresiones. Para crearlos usamos un stack y
vamos cogiendo cada elemento de la expresin en notacin postfija (de izquierda a derecha);

Si el elemento es un nmero o variable se crea un nodo con l y se mete en el stack.


Si el elemento es un operador binario se crea un nodo con dicho operador, se extraen del

stack dos nodos y se le aaden como hijos, finalmente el nuevo nodo se aade al stack.
Si el elemento es un operador unuario se crea un nodo con dicho operador, se extrae del

stack un nodo y se le aade como hijo, finalmente el nuevo nodo se aade al stack.
El proceso se repite hasta que no queden ms elementos en la expresin.

Para terminar, simplemente recorriendo recursivamente el rbol en inorden podemos calcular el


resultado final de la expresin o incluso reconstruirla en su notacin infija:
1.
2.
3.
4.
5.

Imprimimos parntesis izquierdo.


Visitamos subrbol izquierdo (*).
Imprimimos la raz.
Visitamos subrbol derecho (*).
Imprimimos parntesis derecho.
(*): El proceso se repite recursivamente en los pasos 2 y 4.

Conversiones rpidas de notacin infija a prefija y postfija


Para terminar vamos a ver cmo convertir cualquier expresin infija en prefija o postfija
mentalmente de una forma muy fcil.
Supongamos que queremos convertir esta expresin: 1 sqrt( 2 + sin( 3 ) ) * 4
Para convertirla a notacin prefija aadimos todos los parntesis redundantes que faltan y
movemos los operadores al inicio de sus respectivos parntesis (en el caso de las
funciones sqrt y sin, son operadores unuarios que definen siempre sus propios parntesis por lo
tanto no es necesario moverlos ya que ya estn al inicio de sus parntesis):

Finalmente solo tenemos que eliminar todos los parntesis y ya tenemos la expresin infija
convertida a notacin polaca: 1 * sqrt + 2 sin 3 4
Para convertirla a notacin postfija es igual de fcil pero al revs; aadimos los parntesis
redundantes pero ahora movemos los operadores al final de sus parntesis:

Para terminar, eliminamos todos los parntesis y ya est: 1 2 3 sin + sqrt 4 *


Nota: Sea cual sea la conversin a realizar recuerda que los operandos jams se mueven, slo
se desplazan los operadores!

Por ejemplo, si deseamos representar las expresiones (2+(3*4)) = x y


((2+3)*4)= x en las cuatro notaciones mencionadas, el resultado sera:
(2+(3*4)) = x

((2+3)*4) = x

Notacin prefija

=+2*34x

=*+234x

Notacin infija

2+3*4 = x

(2+3)*4 = x

234*+x=

23+4*x=

Notacin postfija

Notacin funcional

igual(suma(2,producto(3,4)),x)

igual(producto(suma(2,3),4),x)

PreFija:
La Expresin o Notacin PreFija nos indica que el operador va antes de los operandos sus caractersticas
principales son:
-Los operandos conservan el mismo orden que la notacin infija equivalente.
-No requiere de parntesis para indicar el orden de precedencia de operadores ya que el es una operacin.
-Se evala de izquierda a derecha hasta que encontrmosle primer operador seguido inmediatamente de un
par de operandos.
-Se evala la expresin binaria y el resultado se cambia como un nuevo operando. Se repite este hasta que
nos quede un solo resultado.

Notacin prefija: El orden es operador, primer operando, segundo operando

NOTACION PREFIJA O POLACA


Es una forma de notacin para la lgica, la aritmtica, y el lgebra. Su caracterstica distintiva es
que coloca los operadores a la izquierda de sus operandos sus caractersticas principales son:
-Los operandos conservan el mismo orden que la notacin infija equivalente.
-No requiere de parntesis para indicar el orden de precedencia de operadores ya que el es una
operacin.
-Se evala de izquierda a derecha hasta que encontrmosle primer operador seguido
inmediatamente de un par de operandos.
-Se evala la expresin binaria y el resultado se cambia como un nuevo operando. Se repite este
hasta que nos quede un solo resultado.

+A B C (A+B)*C
EJEMPLO DE NOTACION INFIJA PREFIJA Y POSTFIJA
(2+(3*4)) = x

((2+3)*4) = x

Notacin prefija

=+2*34x

=*+234x

Notacin infija

2+3*4 = x

(2+3)*4 = x

Notacin postfija

234*+x=

23+4*x=

Ejercicios:
Realizar los siguientes ejercicios a notacion infija, posfija, prefija.
1) (A+B)*C
2) 4+5/3
3) (2+4+3)*3/2
4) X- Y+Z*C
5) (X+5-2)/Y
6) 3*(X+Y)-4
7) (2+5)*8+7
8) 5*4+6/2
NOTACION INFIJA.

1) (A+B)*C
2) 4+5/3
3) (2+4+3)*3/2
4) X-Y+Z*C
5) (X+5-2)/Y
6) 3*(X+Y)-4
7) (2+5)*8+7
8) 5*4+6/2

NOTACION POSFIJA O POLACA INVERSA.


1) CAB+*
2) 453/+
3) 23324++*/
4) XYZC*+5) Y2X5+-/
6) 43XY+*7) 7825+*+
8) 6254*/+
NOTACION PREFIJA O POLACA.
1) *C+AB
2) +4/53
3) /2*3+3+24
4) -X+Y*ZC
5) /Y-2+X5
6) - 4*3+XY
7) +7*8+52
8) +/62*54

EJERCICIOS:
1) 3*(X+Y)-4
2) (2+5)*8+7
3) 5*4+6/2
4) 43XY+*5) 7825+*+
6) 6254*/+
7) -4*3+XY
8) +7*8+25
9) +/62*54

Potrebbero piacerti anche