Pilas_Aplicaciones
description
Transcript of Pilas_Aplicaciones
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
1/19
Clase 6: Pilas (Stacks) Aplicaciones
Carlos Contreras Bolton
9 de abril de 2013
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
2/19
Contenido
1 Principales aplicaciones de pilas
2 Llamadas a subprogramas
3 Eliminacion de recursividad
4 Tratamiento de expresiones aritmeticas
5 Evaluaciones de expresiones aritmeticas
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
3/19
Recordando la Pila
Llamada a subprogramas. Eliminacion de recursividad. Tratamiento de expresiones aritmeticas.
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
4/19
Llamadas a subprogramas
Cuando se tiene un programa que llama a un subprograma,tambien conocido como modulo o funcion, internamente seusan pilas para guardar el estado de las variables del programa,as como las instrucciones pendientes de ejecucion en elmomento que hace la llamada. Cuando termina la ejecucion delsubprograma, los valores almacenados en la pila se recuperanpara continuar con la ejecucion del programa en el punto en elcual fue interrumpido. Ademas de las variables se recupera ladireccion del programa la que se hizo la llamada, porque a esaposicion se regresa el control del proceso.
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
5/19
Llamadas a subprogramas
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
6/19
Llamadas a subprogramasa) PP llama al Uno y se guarda en la pila (push).b) Termina la ejecucion de Uno y regresa el control (pop).c) PP llama a Dos y se vuelve a guarda en la pila (push).d) Dos llama a Tres y se graba en la pila (push).e) Al terminar la ejecucion de Tres se realizara un Pop, retornando el control a Dos.f) Posteriormente cuando finalice Dos se regresara el control a PP, terminando la Ejecucion, y la pila
quedara Vaca.
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
7/19
Llamadas a subprogramas
Cuando se tiene un programa que llama a un subprograma,tambien conocido como modulo o funcion, internamente seusan pilas para guardar el estado de las variables del programa,as como las instrucciones pendientes de ejecucion en elmomento que hace la llamada. Cuando termina la ejecucion delsubprograma, los valores almacenados en la pila se recuperanpara continuar con la ejecucion del programa en el punto en elcual fue interrumpido. Ademas de las variables se recupera ladireccion del programa la que se hizo la llamada, porque a esaposicion se regresa el control del proceso.
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
8/19
Eliminacion de recursividad
Todo algoritmo recursivo puede ser transformado en otrode tipo iterativo.
Pero para ello a veces se necesita utilizar pilas dondealmacenar los calculos parciales y el estado actual delsubprograma recursivo.
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
9/19
Tratamiento de expresionesaritmeticas
Un problema interesante en computacion consiste enconvertir expresiones en notacion infija a su equivalente ennotacion prefija o postfija.
La notacion polaca, tambien conocida como notacion deprefijo o notacion prefija, es una forma de notacion parala logica, la aritmetica, y el algebra.
El logico polaco Jan Lukasiewicz invento esta notacionalrededor de 1920 para simplificar la logica proposicional.
En ciencias de la computacion, la notacion de postfijo esfrecuentemente usada en lenguajes de programacionconcatenativos y basados en pila. Tambien es comun ensistemas basados en flujo de datos y pipes, incluyendo laspipes de Unix.
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
10/19
Notaciones
Infija: A + B. Prefija: + A B. Postfija: A B +. Prioridad:
(potencia). * / (multiplicacion y division). + - (suma y resta).
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
11/19
Ejemplo de conversionInfija a postfija
Expresion infija: X + Z * W
Paso Expresion
0 X + Z * W1 X + Z W *2 X Z W * +
Expresion postfija: X Z W * +
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
11/19
Ejemplo de conversionInfija a postfija
Expresion infija: X + Z * W
Paso Expresion
0 X + Z * W1 X + Z W *2 X Z W * +
Expresion postfija: X Z W * +
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
11/19
Ejemplo de conversionInfija a postfija
Expresion infija: X + Z * W
Paso Expresion
0 X + Z * W1 X + Z W *2 X Z W * +
Expresion postfija: X Z W * +
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
11/19
Ejemplo de conversionInfija a postfija
Expresion infija: X + Z * W
Paso Expresion
0 X + Z * W1 X + Z W *2 X Z W * +
Expresion postfija: X Z W * +
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
12/19
Ejemplo 2 de conversionInfija a postfija
Expresion infija: (X + Z) * W / TY - V
Paso Expresion
0 (X + Z) * W / TY - V1 X Z + * W / TY - V2 X Z + * W / T Y- V3 X Z + W * / T Y- V4 X Z + W * T Y/ - V5 X Z + W * T Y/ V -
Expresion postfija: X Z + W * T Y/ V -
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
12/19
Ejemplo 2 de conversionInfija a postfija
Expresion infija: (X + Z) * W / TY - V
Paso Expresion
0 (X + Z) * W / TY - V1 X Z + * W / TY - V2 X Z + * W / T Y- V3 X Z + W * / T Y- V4 X Z + W * T Y/ - V5 X Z + W * T Y/ V -
Expresion postfija: X Z + W * T Y/ V -
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
12/19
Ejemplo 2 de conversionInfija a postfija
Expresion infija: (X + Z) * W / TY - V
Paso Expresion
0 (X + Z) * W / TY - V1 X Z + * W / TY - V2 X Z + * W / T Y- V3 X Z + W * / T Y- V4 X Z + W * T Y/ - V5 X Z + W * T Y/ V -
Expresion postfija: X Z + W * T Y/ V -
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
12/19
Ejemplo 2 de conversionInfija a postfija
Expresion infija: (X + Z) * W / TY - V
Paso Expresion
0 (X + Z) * W / TY - V1 X Z + * W / TY - V2 X Z + * W / T Y- V3 X Z + W * / T Y- V4 X Z + W * T Y/ - V5 X Z + W * T Y/ V -
Expresion postfija: X Z + W * T Y/ V -
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
12/19
Ejemplo 2 de conversionInfija a postfija
Expresion infija: (X + Z) * W / TY - V
Paso Expresion
0 (X + Z) * W / TY - V1 X Z + * W / TY - V2 X Z + * W / T Y- V3 X Z + W * / T Y- V4 X Z + W * T Y/ - V5 X Z + W * T Y/ V -
Expresion postfija: X Z + W * T Y/ V -
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
12/19
Ejemplo 2 de conversionInfija a postfija
Expresion infija: (X + Z) * W / TY - V
Paso Expresion
0 (X + Z) * W / TY - V1 X Z + * W / TY - V2 X Z + * W / T Y- V3 X Z + W * / T Y- V4 X Z + W * T Y/ - V5 X Z + W * T Y/ V -
Expresion postfija: X Z + W * T Y/ V -
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
12/19
Ejemplo 2 de conversionInfija a postfija
Expresion infija: (X + Z) * W / TY - V
Paso Expresion
0 (X + Z) * W / TY - V1 X Z + * W / TY - V2 X Z + * W / T Y- V3 X Z + W * / T Y- V4 X Z + W * T Y/ - V5 X Z + W * T Y/ V -
Expresion postfija: X Z + W * T Y/ V -
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
13/19
Algoritmo de conversionPrioridad de los operadores
Algoritmo 1 Prioridad dentro
Entrada: operadorSalida: prioridad
1: si operador = ( entonces2: prioridad 03: si no, si operador = entonces4: prioridad 35: si no, si operador = / entonces6: prioridad 27: si no, si operador = * entonces8: prioridad 29: si no, si operador = + entonces
10: prioridad 111: si no, si operador = - entonces12: prioridad 113: fin si
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
14/19
Algoritmo de conversionPrioridad de los operadores
Algoritmo 2 Prioridad fuera
Entrada: operadorSalida: prioridad
1: si operador = ( entonces2: prioridad 53: si no, si operador = entonces4: prioridad 45: si no, si operador = / entonces6: prioridad 27: si no, si operador = * entonces8: prioridad 29: si no, si operador = + entonces
10: prioridad 111: si no, si operador = - entonces12: prioridad 113: fin si
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
15/19
Algoritmo de conversion
Algoritmo 3 Conversion infija a postfija
1: Pila p Pila ()2: mientras EI.largo() > 0 ) hacer3: si EI[0] = ( entonces4: p.push(EI[0])5: si no, si EI[0] = ) entonces6: mientras p.top() 6= ( hacer7: EPOS EPOS + p.top()8: p.pop()9: fin mientras
10: p.pop() {Quitamos (y no agregamos a EPOS}11: si no, si EI[0] = operando() entonces12: EPOS EPOS + EI[0]13: si no14: mientras p.vacia() 6= verdadero and prioridadDentro() prioridadFuera() hacer15: EPOS EPOS + p.top()16: p.pop()17: fin mientras18: p.push(EI[0])19: fin si20: EI[0].erase()21: fin mientras22: mientras p.vacia() 6= verdadero hacer23: EPOS EPOS + p.top()24: p.pop()25: fin mientras
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
16/19
Ejemplo del algoritmoInfija a postfija
Paso ExpresionSmbolo
Pila EPOSanalizado
0 (X + Z) * W / TY - V1 X + Z) * W / TY - V ( (2 + Z) * W / TY - V X ( X3 Z) * W / TY - V + (+ X4 ) * W / TY - V Z (+ X Z5 * W / TY - V ) ( X Z +
) X Z +6 W / TY - V * * X Z +7 / TY - V W * X Z + W8 TY - V / X Z + W *
/ / X Z + W *9 Y - V T / X Z + W * T
10 Y - V / X Z + W * T11 - V Y / X Z + W * T Y12 V - / X Z + W * T Y
- X Z + W * T Y/- - X Z + W * T Y/
13 V - X Z + W * T Y/ V14 X Z + W * T Y/ V -
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
16/19
Ejemplo del algoritmoInfija a postfija
Paso ExpresionSmbolo
Pila EPOSanalizado
0 (X + Z) * W / TY - V1 X + Z) * W / TY - V ( (2 + Z) * W / TY - V X ( X3 Z) * W / TY - V + (+ X4 ) * W / TY - V Z (+ X Z5 * W / TY - V ) ( X Z +
) X Z +6 W / TY - V * * X Z +7 / TY - V W * X Z + W8 TY - V / X Z + W *
/ / X Z + W *9 Y - V T / X Z + W * T
10 Y - V / X Z + W * T11 - V Y / X Z + W * T Y12 V - / X Z + W * T Y
- X Z + W * T Y/- - X Z + W * T Y/
13 V - X Z + W * T Y/ V14 X Z + W * T Y/ V -
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
16/19
Ejemplo del algoritmoInfija a postfija
Paso ExpresionSmbolo
Pila EPOSanalizado
0 (X + Z) * W / TY - V1 X + Z) * W / TY - V ( (2 + Z) * W / TY - V X ( X3 Z) * W / TY - V + (+ X4 ) * W / TY - V Z (+ X Z5 * W / TY - V ) ( X Z +
) X Z +6 W / TY - V * * X Z +7 / TY - V W * X Z + W8 TY - V / X Z + W *
/ / X Z + W *9 Y - V T / X Z + W * T
10 Y - V / X Z + W * T11 - V Y / X Z + W * T Y12 V - / X Z + W * T Y
- X Z + W * T Y/- - X Z + W * T Y/
13 V - X Z + W * T Y/ V14 X Z + W * T Y/ V -
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
16/19
Ejemplo del algoritmoInfija a postfija
Paso ExpresionSmbolo
Pila EPOSanalizado
0 (X + Z) * W / TY - V1 X + Z) * W / TY - V ( (2 + Z) * W / TY - V X ( X3 Z) * W / TY - V + (+ X4 ) * W / TY - V Z (+ X Z5 * W / TY - V ) ( X Z +
) X Z +6 W / TY - V * * X Z +7 / TY - V W * X Z + W8 TY - V / X Z + W *
/ / X Z + W *9 Y - V T / X Z + W * T
10 Y - V / X Z + W * T11 - V Y / X Z + W * T Y12 V - / X Z + W * T Y
- X Z + W * T Y/- - X Z + W * T Y/
13 V - X Z + W * T Y/ V14 X Z + W * T Y/ V -
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
16/19
Ejemplo del algoritmoInfija a postfija
Paso ExpresionSmbolo
Pila EPOSanalizado
0 (X + Z) * W / TY - V1 X + Z) * W / TY - V ( (2 + Z) * W / TY - V X ( X3 Z) * W / TY - V + (+ X4 ) * W / TY - V Z (+ X Z5 * W / TY - V ) ( X Z +
) X Z +6 W / TY - V * * X Z +7 / TY - V W * X Z + W8 TY - V / X Z + W *
/ / X Z + W *9 Y - V T / X Z + W * T
10 Y - V / X Z + W * T11 - V Y / X Z + W * T Y12 V - / X Z + W * T Y
- X Z + W * T Y/- - X Z + W * T Y/
13 V - X Z + W * T Y/ V14 X Z + W * T Y/ V -
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
16/19
Ejemplo del algoritmoInfija a postfija
Paso ExpresionSmbolo
Pila EPOSanalizado
0 (X + Z) * W / TY - V1 X + Z) * W / TY - V ( (2 + Z) * W / TY - V X ( X3 Z) * W / TY - V + (+ X4 ) * W / TY - V Z (+ X Z5 * W / TY - V ) ( X Z +
) X Z +6 W / TY - V * * X Z +7 / TY - V W * X Z + W8 TY - V / X Z + W *
/ / X Z + W *9 Y - V T / X Z + W * T
10 Y - V / X Z + W * T11 - V Y / X Z + W * T Y12 V - / X Z + W * T Y
- X Z + W * T Y/- - X Z + W * T Y/
13 V - X Z + W * T Y/ V14 X Z + W * T Y/ V -
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
16/19
Ejemplo del algoritmoInfija a postfija
Paso ExpresionSmbolo
Pila EPOSanalizado
0 (X + Z) * W / TY - V1 X + Z) * W / TY - V ( (2 + Z) * W / TY - V X ( X3 Z) * W / TY - V + (+ X4 ) * W / TY - V Z (+ X Z5 * W / TY - V ) ( X Z +
) X Z +6 W / TY - V * * X Z +7 / TY - V W * X Z + W8 TY - V / X Z + W *
/ / X Z + W *9 Y - V T / X Z + W * T
10 Y - V / X Z + W * T11 - V Y / X Z + W * T Y12 V - / X Z + W * T Y
- X Z + W * T Y/- - X Z + W * T Y/
13 V - X Z + W * T Y/ V14 X Z + W * T Y/ V -
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
16/19
Ejemplo del algoritmoInfija a postfija
Paso ExpresionSmbolo
Pila EPOSanalizado
0 (X + Z) * W / TY - V1 X + Z) * W / TY - V ( (2 + Z) * W / TY - V X ( X3 Z) * W / TY - V + (+ X4 ) * W / TY - V Z (+ X Z5 * W / TY - V ) ( X Z +
) X Z +6 W / TY - V * * X Z +7 / TY - V W * X Z + W8 TY - V / X Z + W *
/ / X Z + W *9 Y - V T / X Z + W * T
10 Y - V / X Z + W * T11 - V Y / X Z + W * T Y12 V - / X Z + W * T Y
- X Z + W * T Y/- - X Z + W * T Y/
13 V - X Z + W * T Y/ V14 X Z + W * T Y/ V -
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
16/19
Ejemplo del algoritmoInfija a postfija
Paso ExpresionSmbolo
Pila EPOSanalizado
0 (X + Z) * W / TY - V1 X + Z) * W / TY - V ( (2 + Z) * W / TY - V X ( X3 Z) * W / TY - V + (+ X4 ) * W / TY - V Z (+ X Z5 * W / TY - V ) ( X Z +
) X Z +6 W / TY - V * * X Z +7 / TY - V W * X Z + W8 TY - V / X Z + W *
/ / X Z + W *9 Y - V T / X Z + W * T
10 Y - V / X Z + W * T11 - V Y / X Z + W * T Y12 V - / X Z + W * T Y
- X Z + W * T Y/- - X Z + W * T Y/
13 V - X Z + W * T Y/ V14 X Z + W * T Y/ V -
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
16/19
Ejemplo del algoritmoInfija a postfija
Paso ExpresionSmbolo
Pila EPOSanalizado
0 (X + Z) * W / TY - V1 X + Z) * W / TY - V ( (2 + Z) * W / TY - V X ( X3 Z) * W / TY - V + (+ X4 ) * W / TY - V Z (+ X Z5 * W / TY - V ) ( X Z +
) X Z +6 W / TY - V * * X Z +7 / TY - V W * X Z + W8 TY - V / X Z + W *
/ / X Z + W *9 Y - V T / X Z + W * T
10 Y - V / X Z + W * T11 - V Y / X Z + W * T Y12 V - / X Z + W * T Y
- X Z + W * T Y/- - X Z + W * T Y/
13 V - X Z + W * T Y/ V14 X Z + W * T Y/ V -
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
16/19
Ejemplo del algoritmoInfija a postfija
Paso ExpresionSmbolo
Pila EPOSanalizado
0 (X + Z) * W / TY - V1 X + Z) * W / TY - V ( (2 + Z) * W / TY - V X ( X3 Z) * W / TY - V + (+ X4 ) * W / TY - V Z (+ X Z5 * W / TY - V ) ( X Z +
) X Z +6 W / TY - V * * X Z +7 / TY - V W * X Z + W8 TY - V / X Z + W *
/ / X Z + W *9 Y - V T / X Z + W * T
10 Y - V / X Z + W * T11 - V Y / X Z + W * T Y12 V - / X Z + W * T Y
- X Z + W * T Y/- - X Z + W * T Y/
13 V - X Z + W * T Y/ V14 X Z + W * T Y/ V -
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
16/19
Ejemplo del algoritmoInfija a postfija
Paso ExpresionSmbolo
Pila EPOSanalizado
0 (X + Z) * W / TY - V1 X + Z) * W / TY - V ( (2 + Z) * W / TY - V X ( X3 Z) * W / TY - V + (+ X4 ) * W / TY - V Z (+ X Z5 * W / TY - V ) ( X Z +
) X Z +6 W / TY - V * * X Z +7 / TY - V W * X Z + W8 TY - V / X Z + W *
/ / X Z + W *9 Y - V T / X Z + W * T
10 Y - V / X Z + W * T11 - V Y / X Z + W * T Y12 V - / X Z + W * T Y
- X Z + W * T Y/- - X Z + W * T Y/
13 V - X Z + W * T Y/ V14 X Z + W * T Y/ V -
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
16/19
Ejemplo del algoritmoInfija a postfija
Paso ExpresionSmbolo
Pila EPOSanalizado
0 (X + Z) * W / TY - V1 X + Z) * W / TY - V ( (2 + Z) * W / TY - V X ( X3 Z) * W / TY - V + (+ X4 ) * W / TY - V Z (+ X Z5 * W / TY - V ) ( X Z +
) X Z +6 W / TY - V * * X Z +7 / TY - V W * X Z + W8 TY - V / X Z + W *
/ / X Z + W *9 Y - V T / X Z + W * T
10 Y - V / X Z + W * T11 - V Y / X Z + W * T Y12 V - / X Z + W * T Y
- X Z + W * T Y/- - X Z + W * T Y/
13 V - X Z + W * T Y/ V14 X Z + W * T Y/ V -
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
16/19
Ejemplo del algoritmoInfija a postfija
Paso ExpresionSmbolo
Pila EPOSanalizado
0 (X + Z) * W / TY - V1 X + Z) * W / TY - V ( (2 + Z) * W / TY - V X ( X3 Z) * W / TY - V + (+ X4 ) * W / TY - V Z (+ X Z5 * W / TY - V ) ( X Z +
) X Z +6 W / TY - V * * X Z +7 / TY - V W * X Z + W8 TY - V / X Z + W *
/ / X Z + W *9 Y - V T / X Z + W * T
10 Y - V / X Z + W * T11 - V Y / X Z + W * T Y12 V - / X Z + W * T Y
- X Z + W * T Y/- - X Z + W * T Y/
13 V - X Z + W * T Y/ V14 X Z + W * T Y/ V -
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
16/19
Ejemplo del algoritmoInfija a postfija
Paso ExpresionSmbolo
Pila EPOSanalizado
0 (X + Z) * W / TY - V1 X + Z) * W / TY - V ( (2 + Z) * W / TY - V X ( X3 Z) * W / TY - V + (+ X4 ) * W / TY - V Z (+ X Z5 * W / TY - V ) ( X Z +
) X Z +6 W / TY - V * * X Z +7 / TY - V W * X Z + W8 TY - V / X Z + W *
/ / X Z + W *9 Y - V T / X Z + W * T
10 Y - V / X Z + W * T11 - V Y / X Z + W * T Y12 V - / X Z + W * T Y
- X Z + W * T Y/- - X Z + W * T Y/
13 V - X Z + W * T Y/ V14 X Z + W * T Y/ V -
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
16/19
Ejemplo del algoritmoInfija a postfija
Paso ExpresionSmbolo
Pila EPOSanalizado
0 (X + Z) * W / TY - V1 X + Z) * W / TY - V ( (2 + Z) * W / TY - V X ( X3 Z) * W / TY - V + (+ X4 ) * W / TY - V Z (+ X Z5 * W / TY - V ) ( X Z +
) X Z +6 W / TY - V * * X Z +7 / TY - V W * X Z + W8 TY - V / X Z + W *
/ / X Z + W *9 Y - V T / X Z + W * T
10 Y - V / X Z + W * T11 - V Y / X Z + W * T Y12 V - / X Z + W * T Y
- X Z + W * T Y/- - X Z + W * T Y/
13 V - X Z + W * T Y/ V14 X Z + W * T Y/ V -
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
16/19
Ejemplo del algoritmoInfija a postfija
Paso ExpresionSmbolo
Pila EPOSanalizado
0 (X + Z) * W / TY - V1 X + Z) * W / TY - V ( (2 + Z) * W / TY - V X ( X3 Z) * W / TY - V + (+ X4 ) * W / TY - V Z (+ X Z5 * W / TY - V ) ( X Z +
) X Z +6 W / TY - V * * X Z +7 / TY - V W * X Z + W8 TY - V / X Z + W *
/ / X Z + W *9 Y - V T / X Z + W * T
10 Y - V / X Z + W * T11 - V Y / X Z + W * T Y12 V - / X Z + W * T Y
- X Z + W * T Y/- - X Z + W * T Y/
13 V - X Z + W * T Y/ V14 X Z + W * T Y/ V -
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
16/19
Ejemplo del algoritmoInfija a postfija
Paso ExpresionSmbolo
Pila EPOSanalizado
0 (X + Z) * W / TY - V1 X + Z) * W / TY - V ( (2 + Z) * W / TY - V X ( X3 Z) * W / TY - V + (+ X4 ) * W / TY - V Z (+ X Z5 * W / TY - V ) ( X Z +
) X Z +6 W / TY - V * * X Z +7 / TY - V W * X Z + W8 TY - V / X Z + W *
/ / X Z + W *9 Y - V T / X Z + W * T
10 Y - V / X Z + W * T11 - V Y / X Z + W * T Y12 V - / X Z + W * T Y
- X Z + W * T Y/- - X Z + W * T Y/
13 V - X Z + W * T Y/ V14 X Z + W * T Y/ V -
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
16/19
Ejemplo del algoritmoInfija a postfija
Paso ExpresionSmbolo
Pila EPOSanalizado
0 (X + Z) * W / TY - V1 X + Z) * W / TY - V ( (2 + Z) * W / TY - V X ( X3 Z) * W / TY - V + (+ X4 ) * W / TY - V Z (+ X Z5 * W / TY - V ) ( X Z +
) X Z +6 W / TY - V * * X Z +7 / TY - V W * X Z + W8 TY - V / X Z + W *
/ / X Z + W *9 Y - V T / X Z + W * T
10 Y - V / X Z + W * T11 - V Y / X Z + W * T Y12 V - / X Z + W * T Y
- X Z + W * T Y/- - X Z + W * T Y/
13 V - X Z + W * T Y/ V14 X Z + W * T Y/ V -
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
17/19
Algoritmo de evaluacionPara expresiones postfija
Algoritmo 4 Evaluaciones de expresiones postfija
Entrada: EPOS // Expresion postfijaSalida: Resultado
1: mientras E1.largo() > 0 ) hacer2: si EPOS[0] = operando() entonces3: p.push(EPOS[0])4: si no5: x p.top()6: p.pop()7: y p.top()8: p.pop()9: z evaluar (x, y, EPOS[0])
10: p.push(z)11: fin si12: EPOS[0].erase()13: fin mientras14: retornar p.top
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
18/19
Ejemplo del algoritmoEvaluacion postfija
Infija: 2 * 2 + 1 + 22 - 1 Postfija: 2 2 + 1 + 2 2+ 1 -
Paso ExpresionSmbolo
Pilaanalizado
0 2 2 + 1 + 2 2+ 1 -1 2 + 1 + 2 2+ 1 - 2 22 + 1 + 2 2+ 1 - 2 2 23 1 + 2 2+ 1 - + 44 + 2 2+ 1 - 1 4 15 2 2+ 1 - + 56 2+ 1 - 2 5 27 + 1 - 2 5 2 28 + 1 - 5 49 1 - + 9
10 - 1 9 111 - 8
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
18/19
Ejemplo del algoritmoEvaluacion postfija
Infija: 2 * 2 + 1 + 22 - 1 Postfija: 2 2 + 1 + 2 2+ 1 -
Paso ExpresionSmbolo
Pilaanalizado
0 2 2 + 1 + 2 2+ 1 -1 2 + 1 + 2 2+ 1 - 2 22 + 1 + 2 2+ 1 - 2 2 23 1 + 2 2+ 1 - + 44 + 2 2+ 1 - 1 4 15 2 2+ 1 - + 56 2+ 1 - 2 5 27 + 1 - 2 5 2 28 + 1 - 5 49 1 - + 9
10 - 1 9 111 - 8
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
18/19
Ejemplo del algoritmoEvaluacion postfija
Infija: 2 * 2 + 1 + 22 - 1 Postfija: 2 2 + 1 + 2 2+ 1 -
Paso ExpresionSmbolo
Pilaanalizado
0 2 2 + 1 + 2 2+ 1 -1 2 + 1 + 2 2+ 1 - 2 22 + 1 + 2 2+ 1 - 2 2 23 1 + 2 2+ 1 - + 44 + 2 2+ 1 - 1 4 15 2 2+ 1 - + 56 2+ 1 - 2 5 27 + 1 - 2 5 2 28 + 1 - 5 49 1 - + 9
10 - 1 9 111 - 8
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
18/19
Ejemplo del algoritmoEvaluacion postfija
Infija: 2 * 2 + 1 + 22 - 1 Postfija: 2 2 + 1 + 2 2+ 1 -
Paso ExpresionSmbolo
Pilaanalizado
0 2 2 + 1 + 2 2+ 1 -1 2 + 1 + 2 2+ 1 - 2 22 + 1 + 2 2+ 1 - 2 2 23 1 + 2 2+ 1 - + 44 + 2 2+ 1 - 1 4 15 2 2+ 1 - + 56 2+ 1 - 2 5 27 + 1 - 2 5 2 28 + 1 - 5 49 1 - + 9
10 - 1 9 111 - 8
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
18/19
Ejemplo del algoritmoEvaluacion postfija
Infija: 2 * 2 + 1 + 22 - 1 Postfija: 2 2 + 1 + 2 2+ 1 -
Paso ExpresionSmbolo
Pilaanalizado
0 2 2 + 1 + 2 2+ 1 -1 2 + 1 + 2 2+ 1 - 2 22 + 1 + 2 2+ 1 - 2 2 23 1 + 2 2+ 1 - + 44 + 2 2+ 1 - 1 4 15 2 2+ 1 - + 56 2+ 1 - 2 5 27 + 1 - 2 5 2 28 + 1 - 5 49 1 - + 9
10 - 1 9 111 - 8
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
18/19
Ejemplo del algoritmoEvaluacion postfija
Infija: 2 * 2 + 1 + 22 - 1 Postfija: 2 2 + 1 + 2 2+ 1 -
Paso ExpresionSmbolo
Pilaanalizado
0 2 2 + 1 + 2 2+ 1 -1 2 + 1 + 2 2+ 1 - 2 22 + 1 + 2 2+ 1 - 2 2 23 1 + 2 2+ 1 - + 44 + 2 2+ 1 - 1 4 15 2 2+ 1 - + 56 2+ 1 - 2 5 27 + 1 - 2 5 2 28 + 1 - 5 49 1 - + 9
10 - 1 9 111 - 8
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
18/19
Ejemplo del algoritmoEvaluacion postfija
Infija: 2 * 2 + 1 + 22 - 1 Postfija: 2 2 + 1 + 2 2+ 1 -
Paso ExpresionSmbolo
Pilaanalizado
0 2 2 + 1 + 2 2+ 1 -1 2 + 1 + 2 2+ 1 - 2 22 + 1 + 2 2+ 1 - 2 2 23 1 + 2 2+ 1 - + 44 + 2 2+ 1 - 1 4 15 2 2+ 1 - + 56 2+ 1 - 2 5 27 + 1 - 2 5 2 28 + 1 - 5 49 1 - + 9
10 - 1 9 111 - 8
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
18/19
Ejemplo del algoritmoEvaluacion postfija
Infija: 2 * 2 + 1 + 22 - 1 Postfija: 2 2 + 1 + 2 2+ 1 -
Paso ExpresionSmbolo
Pilaanalizado
0 2 2 + 1 + 2 2+ 1 -1 2 + 1 + 2 2+ 1 - 2 22 + 1 + 2 2+ 1 - 2 2 23 1 + 2 2+ 1 - + 44 + 2 2+ 1 - 1 4 15 2 2+ 1 - + 56 2+ 1 - 2 5 27 + 1 - 2 5 2 28 + 1 - 5 49 1 - + 9
10 - 1 9 111 - 8
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
18/19
Ejemplo del algoritmoEvaluacion postfija
Infija: 2 * 2 + 1 + 22 - 1 Postfija: 2 2 + 1 + 2 2+ 1 -
Paso ExpresionSmbolo
Pilaanalizado
0 2 2 + 1 + 2 2+ 1 -1 2 + 1 + 2 2+ 1 - 2 22 + 1 + 2 2+ 1 - 2 2 23 1 + 2 2+ 1 - + 44 + 2 2+ 1 - 1 4 15 2 2+ 1 - + 56 2+ 1 - 2 5 27 + 1 - 2 5 2 28 + 1 - 5 49 1 - + 9
10 - 1 9 111 - 8
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
18/19
Ejemplo del algoritmoEvaluacion postfija
Infija: 2 * 2 + 1 + 22 - 1 Postfija: 2 2 + 1 + 2 2+ 1 -
Paso ExpresionSmbolo
Pilaanalizado
0 2 2 + 1 + 2 2+ 1 -1 2 + 1 + 2 2+ 1 - 2 22 + 1 + 2 2+ 1 - 2 2 23 1 + 2 2+ 1 - + 44 + 2 2+ 1 - 1 4 15 2 2+ 1 - + 56 2+ 1 - 2 5 27 + 1 - 2 5 2 28 + 1 - 5 49 1 - + 9
10 - 1 9 111 - 8
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
18/19
Ejemplo del algoritmoEvaluacion postfija
Infija: 2 * 2 + 1 + 22 - 1 Postfija: 2 2 + 1 + 2 2+ 1 -
Paso ExpresionSmbolo
Pilaanalizado
0 2 2 + 1 + 2 2+ 1 -1 2 + 1 + 2 2+ 1 - 2 22 + 1 + 2 2+ 1 - 2 2 23 1 + 2 2+ 1 - + 44 + 2 2+ 1 - 1 4 15 2 2+ 1 - + 56 2+ 1 - 2 5 27 + 1 - 2 5 2 28 + 1 - 5 49 1 - + 9
10 - 1 9 111 - 8
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
18/19
Ejemplo del algoritmoEvaluacion postfija
Infija: 2 * 2 + 1 + 22 - 1 Postfija: 2 2 + 1 + 2 2+ 1 -
Paso ExpresionSmbolo
Pilaanalizado
0 2 2 + 1 + 2 2+ 1 -1 2 + 1 + 2 2+ 1 - 2 22 + 1 + 2 2+ 1 - 2 2 23 1 + 2 2+ 1 - + 44 + 2 2+ 1 - 1 4 15 2 2+ 1 - + 56 2+ 1 - 2 5 27 + 1 - 2 5 2 28 + 1 - 5 49 1 - + 9
10 - 1 9 111 - 8
-
Estructura deDatos
Carlos ContrerasBolton
Principalesaplicacionesde pilas
Llamadas asubprogramas
Eliminacion derecursividad
Tratamientode expresionesaritmeticas
Evaluacionesde expresionesaritmeticas
Bibliografa
19/19
Bibliografa I
Cairo, O. y Guardati, S. (2002). Estructuras de datos.McGraw-Hill / Interamericana de Espana, 2da edicion.
Joyanes Aguilar, L. (1999). Estructura de datos: Libro deproblemas. McGraw-Hill / Interamericana de Espana.
Joyanes Aguilar, L. (2003). Fundamentos de programacion:Algoritmos, estructura de datos y objetos. McGraw-Hill /Interamericana de Espana.
Joyanes Aguilar, L. (2006). Programacion en C++:Algoritmos, estructuras de datos y objeto. McGraw-Hill /Interamericana de Espana, 3ra edicion.
Principales aplicaciones de pilasLlamadas a subprogramasEliminacin de recursividadTratamiento de expresiones aritmticasEvaluaciones de expresiones aritmticas