Академический Документы
Профессиональный Документы
Культура Документы
CONVERSION POSTFIJA
Traducir una expresión infija EI a postfija EPOS, utilizando una pila.
Inapos(EI, EPOS)
Inicio
Declarar Tope: entero
Declarar símbolo: caracter
Tope 0
Mientras (EI<>vacio) haga
Símbolo izquierda(EI,1,1) /* función que devuelve un número de caracteres a la
izquierda de una cadena */
EI derecha(EI,2,largo(EI)) /* derecha devuelve un numero de caracteres a la derecha de
una cadena, largo, devuelve la longitud de una cadena */
Selecciones símbolo
Caso “(“: Tope Tope +1
Pila[Tope] simbolo
Caso “)“: Mientras Que (Pila[Tope] <> “)” ) haga
Concatenar(EPOS, Pila[Tope]) /* Concatenar dos cadenas */
Tope Tope -1
Fin MQ
/* Se quita el paréntesis izquierdo de la pila y no se agrega a EPOS */
Pila[Tope] “”
Tope Tope – 1
Caso “A”,”B”,”C”,…,”Y”,”Z”: /* El símbolo es un operando */
Concatenar (EPOS, símbolo)
Caso “^”, “*”,”/”,”+”,”-“: /* el símbolo es un operador */
Mientras Que (Tope > 0 ) y (Prioridad(símbolo) <= prioridad(Pila(Tope)) haga
Concatenar(EPOS, Pila[Tope])
Tope Tope -1
Fin MQ
Tope Tope +1
Pila[Tope] símbolo
Fin Seleccione
Fin MQ
Mientras Que (Tope>0) haga
Concatenar(EPOS,Pila[Tope])
Tope Tope -1
Fin MQ
Imprimir EPOS
Fin
COLAS
Para los próximos algoritmos se cuenta con la siguiente estructura de datos