Algoritmo para convertir una expresión aritmética en NOTACIÓN

Anuncio
Algoritmo para convertir una expresión aritmética en NOTACIÓN INFIJA a sus equivalente expresión en NOTACIÓN POSTFIJA
Entrada: Una cola (E) de tokens (Cada token contine el tipo (numero, operador,..) y el valor correspondiente)
Salida: Una cola (S) de tokens en notacion postfija
Estructura Auxiliar: Una pila (P) de tokens
crear P
crear S
Mientras E no esté vacío
e=frente de E
pop de E
Sea el caso e
caso de e es un operando
push e en S
caso e es un '('
push e en P
caso e es un ')'
mientras el frente de P no sea '('
x= frente de P
pop P push x en S
fin_mientras
pop de P //(sacamos '(' ) caso e es un operador
mientras P no este vacía Y el frente de P no sea '(' Y prioridad(frente de P)>=prioridad (e) x= frente de P
pop de P push x en S
fin_mientras
push e en P
fin_caso
fin_para
mientras P no esté vacía
x=frente de P
pop de P
push x en S
fin_mientras
devolver S. //ahora es fácil evaluarlo
Descargar