Documente Academic
Documente Profesional
Documente Cultură
: : : : : : :
Algoritmo y Estructura de Datos II Ing. Elizabeth Castillo Elescano Noche IV AO308 26/12/2011 2011-III
Secuencia de operaciones:
Pila de discos Pila de llamadas a funciones Pila de recursin Pila de resultados parciales de frmulas aritmticas, etc.
Ejemplo 4. A partir de las expresiones siguientes, escribir de Infijo a Posfijo: (a + b) * (e+f) (a + b) * (c-d)*e*f (a+b) * (c/(d-e)+f) g Ejemplo 5.: Sea la expresin: x + y ( 1+2)-(1*2)=1 En infijo ser:
x*y
PILA
EXPRESIN
ACCIN
Xy+xy*1 12 12+12*2+12*+12*-
Empilar (1) Empilar (2) + Se sacan los dos operandos de la pila, se suman y el resultado se mete en la pila. Empilar(3) Empilar (1) Empilar (2) * Se sacan los dos operandos (2)(1)de la pila, se multiplica y el resultado se mete en la pila . Empilar(2) - Se sacan los dos operandos (2)(3)de la pila, se resta y el resultado se mete en la pila . Empilar(-1)
3 31 312
12*2**-
32
-1
Ejemplo 6: Evaluar la expresin 12+34-*
1 Es un operando, se mete en el stack. STACK[ 1 ] 2 Es un operando, se mete en el stack. STACK[ 21 ] + Es un operador, como + es un operador binario (necesita dos elementos) se sacan del stack y se realiza la operacin (1 + 2) y el resultado se mete en el stack. STACK[ 3 ]
4 Es un operando, se mete en el stack. STACK[ 433 ] - Es un operador binario, se sacan dos elementos del stack y se realiza la operacin (3 4) y el resultado se mete en el stack. STACK[ (-1)3 ]
* 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
2. Convertir de PREFIJO a INFIJO a) ***+p q r s t u = (p+ q) *(r- s)* t* u b) - * + a b + / c d e f g = ((a+b)*((c/(d-e))+f))-g c) + - x y z = (x-y)+z d) - + m n * m n = (m+n)-(m*n)
3. Evaluar las siguientes expresiones: a) + - 35 64 = (3-5)+(6-4) b) ^ - * + 123 - 83 63 = (((1+2)*3) - (8-3)) ^ (6-3) c) 28 41 - * = (2-8)*(4-1) d) 10 64 823^ * / - = (10-(64/(8*(2^3))))
Ejercicios de extensin Convertir a prefijo las siguientes expresiones infijo: (a) (b) PILA 1 12 A + B - C; (A + B) * (C - D); A=1, B=2, C= -1 , D=4 EXPRESION 12+(-1)4-* 2+(-1)4-* +(-1)4-* ACCION Empilar (1) Empilar (2)
+ Se sacan los dos operandos de la pila, se suman (2) y (1) y el resultado se mete en la pila. Empilar (3)
Empilar (-1) Empilar (4)
3 3 (-1) 3 (-1) 4
(-1)4-* 4-* -*
3 (-5)
- Se sacan los dos operandos de la pila, se restan (4) y (-1) y el resultado se mete en la pila(-1-4) Empilar (-5) * Se sacan los dos operandos de la pila, se multiplican (-5) y (3) y el resultado se mete en la pila. Empilar (-15)
(-15) (c) (d) (e) PILA A ^ B * C - D + E / F / (G + H); ((A + B) * C - (D - E)) ^ (F + G); A - B / (C * D ^ E). A=6, B=2, C= 3 , D=1 , E=3 EXPRESIN 62-313^*/ ACCIN
Evaluar mediante pilas las siguientes expresiones sufijo: (a) (b) (c) 5 4 3 2 1 * + 1 2 3 * / 2 * 1 / 2 + - + *; 1 2 * 4 2 / 3 4 + 5 * - +; 2 1 / 4 2 * + 6 5 - 8 2 / + +;