Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Aplicaciones de Las Pilas
Aplicaciones de Las Pilas
Estructuras de Datos
EXPRESIONES
A+B Esta forma de escribir las expresiones: NOTACION INFIJA El operador siempre va en medio de los operandos
A+B*C no es igual que (A+B)*C Cada operador tiene su nivel de precedencia, recordemos:
Parntesis : Potencia : Multiplicacin/divisin: Suma/Resta :
() ^ *,/ +,-*
Mayor prioridad
Menor Prioridad
NOTACIONES
A+B*C
NOTACION PREFIJA(POLACA)
A(BC*)+
+AB Aqu el operador va antes que los operandos AB+ Aqu el operador va despus que los operandos
Remover Parntesis
ABC*+ (A+B)*C
Remover Parntesis
AB+C*
EJERCICIOS EN CLASE
Dadas
AB+C* 7C*
A+B -> 7 7*C -> 35
ABC*+ A20+
B*C -> 20 20+A -> 23
EVALUACION: ALGORITMO
Podra ser un una pila
2 veces Pop
ABC*+
C B C*B A
C * B +A
EN PSEUDOCODIGO
Pila s; PilaVacia(s); while(no hayamos revisados toda la expresion) { simbolo = siguiente elemento if(simbolo es un operando) Push(s,simbolo); else{ operando1 = Pop(s); operando2 = Pop(s); valor = resultado de operacin simbolo entre operando1 y operando2 Push(s,valor); } } return(Pop(s));
EJERCICIO EN CLASE
A+B*C-D
ABC*+D-
A B C *+ D -
Pero aun no podemos continuar. Seguimos *Comparado con el de mayor + Es un operador.mayorse es un el con el de Si prioridadla operador, pero, Aqu terminamos de revisar comparando prioridad hasta ahora(el *), el compara con el ultimo hasta lo que vamos smbolo. expresin,mayorelprioridad. hasta ahora, el +. smbolo no tiene mayor no tiene Como* por recordado, no quedan aun En la pila, tiene revisando, el puede que prioridad si podemos es el de aadido Ahora que el +, el + yadecir, ser el * mayor el prioridad,Pero no en la prioridad. mejor, operadores. amayor operador de mayor la expresion. Como ya no queda mas es sabemossacan y sela si pila, tiene Todos se prioridad aaden a la guardarlo mayor definitivamenteel * aahora, el de El es prioridad hastatodos Podemos nueva expresinnueva aadir de la As termina la conversin mayor prioridad, debemos recordarlo aun. Mejor guardarlo expresion, y olvidarnos de el
* + -
CONVERSION: ALGORITMO
Se aade a la expresin
Si el smbolo es un operador
El smbolo es evaluado con respecto a su prioridad Si tiene mayor prioridad que el ultimo operador almacenado
EN PSEUDOCODIGO
Pila s; PilaVacia(&s); while(no termine la expresion en infija) { simbolo = siguiente carcter de entrada; if(simbolo es un operando) else{
Y CON PARENTESIS
EJERCICIO EN CLASE