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.
Suscribirse a:
Enviar comentarios (Atom)
Fabian Aguilar Morales 4º ISC
ResponderEliminarPilas
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>0
|
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.
JONATHAN OCAÑA CARRILLO ISC 4 CUATRIMESTRE:
ResponderEliminares 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.
PILAS
ResponderEliminarLas 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>0
|
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.
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.
ResponderEliminarPara 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º-º
jajajajaj ese es el mio jujuju
ResponderEliminarLUIS REY SOLIS PASCACIO
es que se me olvido poner el inche nombre
saludos chavos de ISC 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.
ResponderEliminarATTE.
GRISELDA MARTINEZ LOPEZ
PILA
ResponderEliminarA 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
Pila (informática)
ResponderEliminarDe 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
Pila (informática)
ResponderEliminarDe 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
ups se me olvido kitar lo de wikipedia jujuju
ResponderEliminarconste que ni lo copie y pegue nomas eee inge...
atte javier de los santos pa servile a asted y a Dios jajaja
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.
ResponderEliminarISC "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
mmmm pila:
ResponderEliminarpila 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"
-_-
Pilas.
ResponderEliminares 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
ammm ya se que comento tarde profe
ResponderEliminarpero la neta no le entendi nada XD jejeje
soy algo sincero
atte.
rodrigo vazquez yañez (chuleta)