Una pila o stack es una lista de elementos a la cual se le
pueden insertar o extraer elementos solo por uno de sus extremos. Las pilas son
estructuras de datos en las que la inserción de datos se hace por el frente y
la eliminación de los datos de igual manera se hace por el frente, se elimina
un dato por el mismo lado de donde se inserta; debido a esta característica de inserción
y eliminación de datos también se le conoce como estructura LIFO (Last-In,
First-Out: Ultimo en entrar, primero en salir).
Una representación analógica de una pila con objetos cotidianos, podría ser una pila de platos: En una mesa se colocan muchos platos uno encima del otro (una pila de platos), para colocar un nuevo plato en la pila se coloca el plato en la cima de la pila. Para sacar un plato de la pila es necesario sacar el plato que esta encima de la pila (el ultimo plato que fue colocado en la pila de platos).
(a) Una pila de libros. (b) Una pila de CD's. (c) Una pila de platos.
Al igual que en en la analogía de la pila de platos, en las pilas de datos la información se almacena de la misma manera y se inserta nueva información y se elimina un dato del mismo modo. Ahora, para comodidad del lector vamos a representar una pila de datos de la siguiente manera:
En la figura anterior podemos observar una pila de datos con 4 elementos apilados. Podrían ser 4 elementos de cualquier tipo, hablando de programación en Java podrían ser: int, string o incluso objetos.