Pilas_Aplicaciones

download Pilas_Aplicaciones

of 57

description

TDA Pilas, Estructura de datos unab

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