Sunteți pe pagina 1din 1

CONV-POSTFIJA(EL,EPOS)

//Este algoritmo traduce una expresin infija EL a postfija EPOS, haciendo


uso de una pila PILA
//TOPE es una variable de tipo entero
TOPE = 0
Repetir mientras EL sea diferente de la cadena vacia.
Tomar el simbolo mas a la izquierda de EL, recortando luego la expresin.
Si simbolo es parentesis izquierdo entonces
{ poner simbolo en PILA}
TOPE = TOPE +1
PILA [TOPE] = simbolo
Si no
Si simbolo es parentesis Derecho entonces
Repetir mientras PILA [TOPE] <> parentesis Izquierdo
EPOS = EPOS + PILA[TOPE]
TOPE = TOPE -1
fin -mientras
//Sacamos el parentesis izquierdo de PILA y no lo agregamos a EPOS.

TOPE = TOPE -1
Si no
Si simbolo es un operando entonces
agregar simbolo a EPOS
Si no {Es un operador}
Repetir mientras TOPE >0 y prioridad del operador <=
prioridad del operador de la cima de la PILA

EPOS=EPOS + PILA[TOPE]
TOPE = TOPE - 1
Fin-mientras
TOPE =TOPE +1
PILA[TOPE]=Simbolo
fin si
finsi
finsi
fin-mientras
Repetir mientras TOPE > 0
EPOS=EPOS + PILA[TOPE]
TOPE = TOPE -1
Fin mientras
Escribir EPOS.