El documento describe el concepto de pila (stack) como un tipo abstracto de datos. Una pila tiene dos operaciones básicas: apilar (push) para agregar un elemento a la cima de la pila, y desapilar (pop) para remover el elemento de la cima. Las pilas se usan comúnmente en compiladores, sistemas operativos y aplicaciones para resolver problemas de manera eficiente.
1. República Bolivariana De Venezuela
Ministerio Del Poder Popular Para La Educación
Instituto Universitario De Tecnología “Juan Pablo Pérez
Alfonzo”
IUTEPAL PUERTO CABELLO
Autor: Oscar Escobar C.I 21199267
Puerto Cabello, de Diciembre de 2015
Tutor: Silvana Iannuzzi
Last in, first out
Lifo
2. El término LIFO es el acrónimo inglés de Last In,
First Out (“último en entrar, primero en salir”),
también conocido como FILO que es la sigla de First
In, Last Out (“primero en entrar, último en salir”).
Puede tener distintos significados según el contexto.
Last in, first out
3. En informática,
FIFO se utiliza en
estructuras de datos
para
implementar colas.
La implementación
puede efectuarse
con ayuda
de arreglos o
vectores, o bien
mediante el uso
de punteros y asign
ación dinámica de
memoria.
4. Si se implementa mediante
vectores, el número máximo de
elementos que puede
almacenar FIFO está limitado
al que se haya establecido en
el código del programa antes
de la compilación (cola
estática) o durante su
ejecución (cola pseudoestática
o dinámica). Sea cual sea la
opción elegida, el número de
elementos que podrá
almacenar la cola quedará
determinado durante toda la
ejecución del programa. Así, el
sistema debe reservar el
tamaño de memoria necesario
para acoger todos los datos,
sea cual sea el número de
elementos usados.
En algunas
aplicaciones, esto
supone un problema
ya que puede
desconocerse el
número de
elementos a
contener en la cola.
La sencilla solución
de reservar más
memoria de la que
se supone que se
necesitará, puede
conducir a un
despilfarro de la
memoria (la cola
puede que esté
llena,
5. 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 des apilar, pop), que retira
el último elemento apilado.
6.
7. aprovechando toda la memoria reservada; o bien, nunca terminar de
llenarse, ocupando recursos innecesarios en memoria). Sin embargo, si se
usa asignación dinámica de memoria, el número máximo no está
declarado en tiempo de compilación sino en tiempo de ejecución, es
decir, se reserva memoria a medida que se necesite expandir el tamaño de
la cola (adaptándose al tamaño necesario en cada momento en función
de los elementos que hay en la cola), haciendo un mejor uso de la
memoria disponible.
Uno de los usos de las colas es la exploración ‘en anchura’ de un árbol
binario de búsqueda. Otro uso típico de las colas, es la gestión de
descargas de una aplicación
8. 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.
Pila como tipo abstracto de datos
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.
9. Las pilas son utilizadas ampliamente para
solucionar una amplia variedad de problemas. Se
utiliza en compiladores, sistemas operativos y en
programas de aplicación.
Las pilas se utilizan en muchas aplicaciones que
utilizamos con
frecuencia. Por ejemplo, la gestión de ventanas en
Windows (cuando cerramos
una ventana siempre recuperamos la que
teníamos detrás). Otro ejemplo es la
evaluación general de cualquier expresión
matemática para evitar tener que
calcular el número de variables temporales que
hacen falta.
10. Historia
El método de pila para la evaluación de
expresiones fue propuesto en 1955 y dos años
después patentado por Friedrich L. Bauer, quién
recibió en 1988 el premio "IEEE Computer
Society Pioneer Award" por su trabajo en el
desarrollo de dicha estructura de datos.
11. Una pila típica es un área de la memoria de los
computadores con un origen fijo y un tamaño
variable. Al principio, el tamaño de la pila es cero.
Un puntero de pila, por lo general en forma de
un registro de hardware, apunta a la más reciente
localización en la pila; cuando la pila tiene un
tamaño de cero, el puntero de pila de puntos en
el origen de la pila.
Arquitectura básica de una pila
12. Las dos operaciones aplicables a todas las pilas son:
Una operación apilar, en el que un elemento de datos se coloca en el lugar
apuntado por el puntero de pila, y la dirección en el puntero de pila se ajusta
por el tamaño de los datos de partida.
Una operación desapilar: un elemento de datos en la ubicación actual
apuntado por el puntero de pila es eliminado, y el puntero de pila se ajusta
por el tamaño de los datos de partida.
Hay muchas variaciones en el principio básico de las operaciones de pila.
Cada pila tiene un lugar fijo en la memoria en la que comienza. Como los
datos se añadirán a la pila, el puntero de pila es desplazado para indicar el
estado actual de la pila, que se expande lejos del origen (ya sea hacia arriba o
hacia abajo, dependiendo de la aplicación concreta).
13. Una pila cuenta con 2 operaciones
imprescindibles: apilar y des apilar, 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. (constructor)
Tamaño: regresa el número de elementos de la
pila. (size)
Apilar: se añade un elemento a la pila.(push)
Des apilar: se elimina el elemento frontal de la
pila.(pop)
Cima: devuelve el elemento que esta en la cima
de la pila. (top o peek)
Vacía: devuelve cierto si la pila está sin elementos
o falso en caso de que contenga uno. (empty).
14. Si tenemos un par de elementos en la pila, uno de ellos debe estar en la
parte superior de la pila, que se considera ``el más alto'' en la pila que el otro.
En la figura 9 el elemento F es el más alto de todos los elementos que están en
la pila. El elemento D es el más alto de los elementos A,B,C, pero es menor
que los elementos E y F.