domingo, 29 de noviembre de 2009

Programación en Java Tema PILAS


Definición de Pilas
Representación en memoria
Rercursividad
Implementar la recursividad usando pilas
Operaciones en pilas

Comente 4 semestre de ISC
Universidad Salazar Plantel Tonalá
L.I. Uberto Aguilar N.

14 comentarios:

  1. Fabian Aguilar Morales 4º ISC

    Pilas

    Las pilas son otro tipo de estructura de datos lineales, las cuales presentan restricciones en cuanto a la posición en la cual pueden realizarse las inserciones y las extracciones de elementos.
    Una pila es una lista de elementos en la que se pueden insertar y eliminar elementos sólo por uno de los extremos. Como consecuencia, los elementos de una pila serán eliminados en orden inverso al que se insertaron. Es decir, el último elemento que se metió a la pila será el primero en salir de ella.
    En la vida cotidiana existen muchos ejemplos de pilas, una pila de platos en una alacena, una pila de latas en un supermercado, una pila de papeles sobre un escritorio, etc.
    Debido al orden en que se insertan y eliminan los elementos en una pila, también se le conoce como estructura LIFO (Last In, First Out: último en entrar, primero en salir).

    Representación en Memoria

    Las pilas no son estructuras de datos fundamentales, es decir, no están definidas como tales en los lenguajes de programación. Las pilas pueden representarse mediante el uso de :
    Arreglos.
    Listas enlazadas.
    Nosotros ahora usaremos los arreglos. Por lo tanto debemos definir el tamaño máximo de la pila, además de un apuntador al último elemento insertado en la pila el cual denominaremos SP. La representación gráfica de una pila es la siguiente:
    Como utilizamos arreglos para implementar pilas, tenemos la limitante de espacio de memoria reservada. Una vez establecido un máximo de capacidad para la pila, ya no es posible insertar más elementos.
    Recursión

    Podemos definir la recursividad como un proceso que se define en términos de sí mismo.
    El concepto de recursión es difícil de precisar, pero existen ejemplos de la vida cotidiana que nos pueden servir para darnos una mejor idea acerca de lo que es recursividad. Un ejemplo de esto es cuando se toma una fotografía de una fotografía, o cuando en un programa de televisión un periodista transfiere el control a otro periodista que se encuentra en otra ciudad, y este a su vez le transfiere el control a otro.

    Implementar Recursión Usando Pilas

    Otra de las aplicaciones en las que podemos utilizar las pilas es en la implementación de la recursividad. A continuación se mostrarán algunos ejemplos.
                    |
                    |      1 ,                  N=0
    Factorial     < 
                    |      N*(n-1)!,      N&gt0
                    |

            sp <--0
            mientras n <> 1 haz
                     push(pila,n)
                     n<--n-1
            mientras sp <> 0 haz
                     factorial<--factorial*pop(pila)


                    |
                    |      0  ,               si a < b
    Q             < 
                    |   Q(a-b,b)+1,   si a<=b
                    |

            sp<--0
            Q<--0
            lee(a), lee(b)
            mientras a>=b haz
                    push(pila,1)
                    a<--a-b
            mientras sp< > 0 haz
                    Q<-- Q + pop(pila)

    Operaciones en Pilas

    Las principales operaciones que podemos realizar en una pila son:
    Insertar un elemento (push).
    Eliminar un elemento (pop).
    Los algoritmos para realizar cada una de estas operaciones se muestran a continuación. La variable máximo para hacer referencia al máximo número de elementos en la pila.

    ResponderEliminar
  2. JONATHAN OCAÑA CARRILLO ISC 4 CUATRIMESTRE:

    es una lista ordinal o estructura de datos en la que el modo de acceso a sus elementos es de tipo LIFO (del inglés last in first out, es decir, "último en entrar, primero en salir") que permite almacenar y recuperar datos. Se aplica en multitud de ocasiones en informática debido a su simplicidad y ordenación implícita en la propia estructura.

    En cada momento sólo se tiene acceso a la parte superior de la pila, es decir, al último objeto apilado (denominado TOS, top of stack en inglés). La operación retirar permite la obtención de este elemento, que es retirado de la pila permitiendo el acceso al siguiente (apilado con anterioridad), que pasa a ser el nuevo TOS.

    Por analogía con objetos cotidianos, una operación apilar equivaldría a colocar un plato sobre una pila de platos, y una operación retirar a retirarlo.

    ResponderEliminar
  3. PILAS

    Las pilas como su nombre lo indica es un "apilamiento" de elementos. que utilizan el metodo datos UEPS (ultimo en entrar, primero en salir) donde el elemento de enlace en el nodo inferior (es decir, el ultimo) de la pila se establece en null para indicar el fondo de la pila.
    Los metodos basicos para manipular una pila son:
    PUSH (empujar) y POP (sacar).

    El metodo push agrega un nuevo nodo a la parte superior de la pila. El metodo pop elimina un nodo de la parte superior de la pila y devuelve los datos del nodo que se quito.

    Representacion en memoria.

    En java no se manejan las estructuras mas bien no es comun como en c++ la memoria la debemos de tratar con ciertas funciones dependiendo de la cantidad de datos en la pila dependera la resistencia y el gasto la memoria.

    Recursividad.
    Podemos definir la recursividad como un proceso que se define en términos de sí mismo.

    Hablamos de recursividad, tanto en el ámbito informático como en el ámbito matemático, cuando definimos algo (un tipo de objetos, una propiedad o una operación) en función de sí mismo. La recursividad en programación es una herramienta sencilla, muy útil y potente.

    La recursión se puede dar de dos formas:
    * DIRECTA
    * INDIRECTA

    Implementación de recursividad usando pilas

    |
    | 1 , N=0
    Factorial <
    | N*(n-1)!, N&gt0
    |

    sp <--0
    mientras n <> 1 haz
    push(pila,n)
    n<--n-1
    mientras sp <> 0 haz
    factorial<--factorial*pop(pila)


    |
    | 0 , si a < b
    Q <
    | Q(a-b,b)+1, si a<=b
    |

    sp<--0
    Q<--0
    lee(a), lee(b)
    mientras a>=b haz
    push(pila,1)
    a<--a-b
    mientras sp< > 0 haz
    Q<-- Q + pop(pila)

    Operaciones en pilas.

    Las pilas constan de dos operaciones por a asi desirce basicas que son APILAR Y DASAPILAR.

    ResponderEliminar
  4. Una pila es una lista ordinal o estructura de datos en la que el modo de acceso a sus elementos es de tipo LIFO (del inglés last in first out, es decir, "último en entrar, primero en salir") que permite almacenar y recuperar datos. Se aplica en multitud de ocasiones en informática debido a su simplicidad y ordenación implícita en la propia estructura.

    Para el manejo de los datos se cuenta con dos operaciones básicas: "apilar" (push), que coloca un objeto en la pila, y su operación inversa, "retirar" o "desapilar" (pop), que retira el último elemento apilado.
    En cada momento sólo se tiene acceso a la parte superior de la pila, es decir, al último objeto apilado (denominado TOS, top of stack en inglés). La operación retirar permite la obtención de este elemento, que es retirado de la pila permitiendo el acceso al siguiente (apilado con anterioridad), que pasa a ser el nuevo TOS.
    Por analogía con objetos cotidianos, una operación apilar equivaldría a colocar un plato sobre una pila de platos, y una operación retirar a retirarlo.
    Las pilas suelen emplearse en los siguientes contextos:
    • Evaluación de expresiones en notación postfija (notación polaca inversa).
    • Reconocedores sintácticos de lenguajes independientes del contexto
    • Implementación de recursividad.
    Pila de llamadas
    • Artículo principal: Pila de llamadas
    • La pila de llamadas es un segmento de memoria que utiliza esta estructura de datos para almacenar información sobre las llamadas a subrutinas actualmente en ejecución en un programa en proceso.
    • Cada vez que una nueva subrutina es llamada, se apila una nueva entrada con información sobre ésta tal como sus variables locales. En especial, se almacena aquí el punto de retorno al que regresar cuando esta subrutina termine (para volver a la subrutina anterior y continuar su ejecución después de esta llamada).

    Pila como tipo abstracto de datos
    A modo de resumen tipo de datos, la pila es un contenedor de nodos y tiene dos operaciones básicas: push (o apilar) y pop (o desapilar). Push añade un nodo a la parte superior de la pila, dejando por debajo el resto de los nodos. Pop elimina y devuelve el actual nodo superior de la pila. Una metáfora que se utiliza con frecuencia es la idea de una pila de platos en una cafetería con muelle de pila. En esa serie, sólo la primera placa es visible y accesible para el usuario, todas las demás placas permanecen ocultas. Como se añaden las nuevas placas, cada nueva placa se convierte en la parte superior de la pila, escondidos debajo de cada plato, empujando a la pila de placas. A medida que la placa superior se elimina de la pila, la segunda placa se convierte en la parte superior de la pila. Dos principios importantes son ilustrados por esta metáfora: En primer lugar la última salida es un principio, la segunda es que el contenido de la pila está oculto. Sólo la placa de la parte superior es visible, por lo que para ver lo que hay en la tercera placa, el primer y segundo platos tendrán que ser retirados.
    Operaciones
    Una pila cuenta con 2 operaciones imprescindibles: apilar y desapilar, a las que en las implementaciones modernas de las pilas se suelen añadir más de uso habitual.
    • Crear: se crea la pila vacía.
    • Apilar: se añade un elemento a la pila.(push)
    • Desapilar: se elimina el elemento frontal de la pila.(pop)
    • Cima: devuelve el elemento que está en la cima de la pila. (top o peek)
    • Vacía: devuelve cierto si la pila está vacía o falso en caso contrario.

    Operaciones en Pilas

    Las principales operaciones que podemos realizar en una pila son:
    Insertar un elemento (push).
    Eliminar un elemento (pop).
    Los algoritmos para realizar cada una de estas operaciones se muestran a continuación. La variable máximo para hacer referencia al máximo número de elementos en la pila.


    º-Angela lorenzana vazquezº-º

    ResponderEliminar
  5. jajajajaj ese es el mio jujuju

    LUIS REY SOLIS PASCACIO

    es que se me olvido poner el inche nombre

    saludos chavos de ISC 4º....

    ResponderEliminar
  6. Una pila es una lista ordinal o estructura de datos en la que el modo de acceso a sus elementos es de tipo LIFO (del inglés last in first out, es decir, "último en entrar, primero en salir") que permite almacenar y recuperar datos. Se aplica en multitud de ocasiones en informática debido a su simplicidad y ordenación implícita en la propia estructura.


    ATTE.

    GRISELDA MARTINEZ LOPEZ

    ResponderEliminar
  7. PILA

    A una pila se le conoce como estructura de datos UEPS (ultimo en entrar, primero en salir).El metodo push agrega un nuevo nodo a la parte superior de la pila. El metodo pop elimina un nodo de la parte superior de la pila y devuelve los datos del nodo que se quito.

    Recursividad.

    Es cuando definimos algo (un tipo de objetos, una propiedad o una operación) en función de sí mismo.

    Implementación de recursividad usando pilas.

    Otra de las aplicaciones en las que podemos utilizar las pilas es en la implementación de la recursividad.

    Operaciones en pilas.

    Una pila cuenta con 2 operaciones imprescindibles: apilar y desapilar, a las que en las implementaciones modernas de las pilas se suelen añadir más de uso habitual.

    ATTE: I.S.C. Christian Geovanni Matias Cigarroa

    ResponderEliminar
  8. Pila (informática)
    De Wikipedia, la enciclopedia libre
    Saltar a navegación, búsqueda
    Una pila (stack en inglés) es una lista ordinal o estructura de datos en la que el modo de acceso a sus elementos es de tipo LIFO (del inglés last in first out, es decir, "último en entrar, primero en salir") que permite almacenar y recuperar datos. Se aplica en multitud de ocasiones en informática debido a su simplicidad y ordenación implícita en la propia estructura.

    Para el manejo de los datos se cuenta con dos operaciones básicas: "apilar" (push), que coloca un objeto en la pila, y su operación inversa, "retirar" o "desapilar" (pop), que retira el último elemento apilado.
    En cada momento sólo se tiene acceso a la parte superior de la pila, es decir, al último objeto apilado (denominado TOS, top of stack en inglés). La operación retirar permite la obtención de este elemento, que es retirado de la pila permitiendo el acceso al siguiente (apilado con anterioridad), que pasa a ser el nuevo TOS.
    Por analogía con objetos cotidianos, una operación apilar equivaldría a colocar un plato sobre una pila de platos, y una operación retirar a retirarlo.
    Las pilas suelen emplearse en los siguientes contextos:
    • Evaluación de expresiones en notación postfija (notación polaca inversa).
    • Reconocedores sintácticos de lenguajes independientes del contexto
    • Implementación de recursividad.




    atte JAVIER DE LOS SANTOS HAAZ

    ResponderEliminar
  9. Pila (informática)
    De Wikipedia, la enciclopedia libre
    Saltar a navegación, búsqueda
    Una pila (stack en inglés) es una lista ordinal o estructura de datos en la que el modo de acceso a sus elementos es de tipo LIFO (del inglés last in first out, es decir, "último en entrar, primero en salir") que permite almacenar y recuperar datos. Se aplica en multitud de ocasiones en informática debido a su simplicidad y ordenación implícita en la propia estructura.

    Para el manejo de los datos se cuenta con dos operaciones básicas: "apilar" (push), que coloca un objeto en la pila, y su operación inversa, "retirar" o "desapilar" (pop), que retira el último elemento apilado.
    En cada momento sólo se tiene acceso a la parte superior de la pila, es decir, al último objeto apilado (denominado TOS, top of stack en inglés). La operación retirar permite la obtención de este elemento, que es retirado de la pila permitiendo el acceso al siguiente (apilado con anterioridad), que pasa a ser el nuevo TOS.
    Por analogía con objetos cotidianos, una operación apilar equivaldría a colocar un plato sobre una pila de platos, y una operación retirar a retirarlo.
    Las pilas suelen emplearse en los siguientes contextos:
    • Evaluación de expresiones en notación postfija (notación polaca inversa).
    • Reconocedores sintácticos de lenguajes independientes del contexto
    • Implementación de recursividad.



    atte JAVIER DE LOS SANTOS HAAZ

    ResponderEliminar
  10. ups se me olvido kitar lo de wikipedia jujuju

    conste que ni lo copie y pegue nomas eee inge...

    atte javier de los santos pa servile a asted y a Dios jajaja

    ResponderEliminar
  11. Una pila es una lista ordinal o estructura de datos en la que el modo de acceso a sus elementos es de tipo LIFO (del inglés last in first out, es decir, "último en entrar, primero en salir") que permite almacenar y recuperar datos. Se aplica en multitud de ocasiones en informática debido a su simplicidad y ordenación implícita en la propia estructura.

    ISC "CLEMENTE"...

    Representacion en memoria.
    En java no se manejan las estructuras mas bien no es comun como en c++ la memoria la debemos de tratar con ciertas funciones dependiendo de la cantidad de datos en la pila dependera la resistencia y el gasto la memoria.

    Recursividad.
    La recursión se puede dar de dos formas:
    * DIRECTA
    * INDIRECTA

    ResponderEliminar
  12. mmmm pila:

    pila se le conoce como estructura de datos UEPS ultimo en entrar, primero en salir).El metodo push agrega un nuevo nodo a la parte superior de la pila. El metodo pop elimina un nodo de la parte superior de la pila y devuelve los datos del nodo que se quito.

    y seguimos...

    Operaciones en pilas.

    Una pila cuenta con 2 operaciones imprescindibles: apilar y desapilar, a las que en las implementaciones modernas de las pilas se suelen añadir más de uso habitual.

    mmm y hay mas.....

    Recursividad.

    Es cuando definimos algo (un tipo de objetos, una propiedad o una operación) en función de sí mismo.

    Implementación de recursividad usando pilas.

    Otra de las aplicaciones en las que podemos utilizar las pilas es en la implementación de la recursividad.


    sale cuidenceeeeeeeeeeeeeeeeeee

    PD: Sta horrible el blog que hizo chuletaaaa
    y no lo quiere cambiaaaaaar juuuuum.

    ATTE: I.S.C. "MARTIN LOPEZ PALMA"
    -_-

    ResponderEliminar
  13. Pilas.

    es una lista ordinal o estructura de datos en la que el modo de acceso a sus elementos es de tipo LIFO (del inglés last in first out, es decir, "último en entrar, primero en salir") que permite almacenar y recuperar datos. Se aplica en multitud de ocasiones en informática debido a su simplicidad y ordenación implícita en la propia estructura.


    Pila de llamadas

    • Artículo principal: Pila de llamadas
    • La pila de llamadas es un segmento de memoria que utiliza esta estructura de datos para almacenar información sobre las llamadas a subrutinas actualmente en ejecución en un programa en proceso.
    • Cada vez que una nueva subrutina es llamada, se apila una nueva entrada con información sobre ésta tal como sus variables locales. En especial, se almacena aquí el punto de retorno al que regresar cuando esta subrutina termine (para volver a la subrutina anterior y continuar su ejecución después de esta llamada).


    Pila como tipo abstracto de datos

    A modo de resumen tipo de datos, la pila es un contenedor de nodos y tiene dos operaciones básicas: push (o apilar) y pop (o desapilar). Push añade un nodo a la parte superior de la pila, dejando por debajo el resto de los nodos. Pop elimina y devuelve el actual nodo superior de la pila. Una metáfora que se utiliza con frecuencia es la idea de una pila de platos en una cafetería con muelle de pila. En esa serie, sólo la primera placa es visible y accesible para el usuario, todas las demás placas permanecen ocultas. Como se añaden las nuevas placas, cada nueva placa se convierte en la parte superior de la pila, escondidos debajo de cada plato, empujando a la pila de placas. A medida que la placa superior se elimina de la pila, la segunda placa se convierte en la parte superior de la pila. Dos principios importantes son ilustrados por esta metáfora: En primer lugar la última salida es un principio, la segunda es que el contenido de la pila está oculto. Sólo la placa de la parte superior es visible, por lo que para ver lo que hay en la tercera placa, el primer y segundo platos tendrán que ser retirados.

    Operaciones

    Una pila cuenta con 2 operaciones imprescindibles: apilar y desapilar, a las que en las implementaciones modernas de las pilas se suelen añadir más de uso habitual.
    • Crear: se crea la pila vacía.
    • Apilar: se añade un elemento a la pila.(push)
    • Desapilar: se elimina el elemento frontal de la pila.(pop)
    • Cima: devuelve el elemento que está en la cima de la pila. (top o peek)
    • Vacía: devuelve cierto si la pila está vacía o falso en caso contrario.

    Recursividad.

    Hablamos de recursividad, tanto en el ámbito informático como en el ámbito matemático, cuando definimos algo (un tipo de objetos, una propiedad o una operación) en función de sí mismo. La recursividad en programación es una herramienta sencilla, muy útil y potente.
    Podemos definir la recursividad como un proceso que se define en términos de sí mismo.El concepto de recursión es difícil de precisar, pero existen ejemplos de la vida cotidiana que nos pueden servir para darnos una mejor idea acerca de lo que es recursividad. Un ejemplo de esto es cuando se toma una fotografía de una fotografía, o cuando en un programa de televisión un periodista transfiere el control a otro periodista que se encuentra en otra ciudad, y este a su vez le transfiere el control a otro. Casos típicos de estructuras de datos definidas de manera recursiva son los árboles binarios y las listas enlazadas.

    Representacion en memoria.

    En java no se manejan las estructuras mas bien no es comun como en c++ la memoria la debemos de tratar con ciertas funciones dependiendo de la cantidad de datos en la pila dependera la resistencia y el gasto la memoria.


    A.T.T.E ALEJANDRO LOPEZ HERNANDEZ
    ARRIBA LA BANDA DEL ISC DEL 4 CUATRIMESTRE
    JEJEJEJJE

    ResponderEliminar
  14. ammm ya se que comento tarde profe
    pero la neta no le entendi nada XD jejeje
    soy algo sincero

    atte.
    rodrigo vazquez yañez (chuleta)

    ResponderEliminar