Estructura de datos que únicamente es accesible por uno de sus extremos llamado la parte superior de la pila o también conocido como la cima de la pila. Esto debido a que, es una lista de elementos ordenados en la que todas las inserciones y supresiones se realizan por un mismo extremo de lista.
Definición de Pila
Una pila, también llamada Stack por su nombre en inglés, es una estructura de datos que únicamente es accesible por uno de sus extremos llamado la parte superior de la pila o también conocido como la cima de la pila. Esto debido a que, es una lista de elementos ordenados en la que todas las inserciones y supresiones se realizan por un mismo extremo de lista. Es decir, en una pila el último elemento insertado será el primero en salir de la pila. Esto significa que si agregamos un elemento a la pila lo colocaremos en la cima y si eliminamos un elemento de la pila, quitaremos el que se encuentre en la cima.
Las pilas se comportar como una bolsa de pan de caja, la boca de la bolsa representa la entrada y salida de los panes. Si quiero sacar una pan tomaré el que está en la cima y si quiero meter un pan, lo colocaré en la cima para que se coloque sobre los otros. Otro ejemplo típico de pila lo constituye un montón de platos cuando se les está lavando, cuando los platos están listos para lavarlos lo primero que hacemos es tomar un plato y después de realizar el proceso de lavado, lo ubicamos en la primera posición, luego cogemos el segundo plato y lo ubicamos encima del primero, ahí estamos realizando la operación de apilar, esto lo hacemos hasta que ya no haya más platos por lavar y la pila de platos esté terminada. Es por esto por lo que el acceso a sus elementos es de tipo UEPS (último en entrar, primero en salir) o en inglés estructuras tipo LIFO (Last input, First output).
Operaciones básicas sobre una pila
Push
Es la operación que inserta elementos en una pila. Debido a las características de las pilas al realizar un push el elemento insertado quedará en la cima de la pila.
En la figura 4 se muestra el esquema de una pila después de realizar una serie de operaciones Push, el ejemplo 1 muestra a la pila después de haber realizar un push con el elemento 1, el ejemplo 2 muestra a la pila después de realizar un push con el elemento 2, note que el elemento 2 se coloca en la cima de al pila, y por consecuente, queda encima del elemento 1. Al realizar un push con el elemento 3, 4 y un push con el elemento 5, las pilas se muestran en los ejemplos 3, 4 y 5 respectivamente, en esta última el elemento 5 queda en la cima de la pila.
Pop
Es la operación que elimina elementos de la pila. Al realizar un pop se eliminará el elemento que se encuentra en la cima de la pila.
En la figura 6 se muestra el esquema de una pila después de realizar una serie de operaciones Pop. El ejemplo 6 muestra el estado inicial de la pila, el ejemplo 7 muestra a la pila después de haber realizado un Pop, para este caso se eliminó de la pila al elemento 6 ya que era el elemento que se encontraba en la cima de la pila, de manera similar los jemplos 8, 9 y 10 muestran a la pila después de realizar tres pop consecutivos respectivamente, en este último caso la pila se queda con un único elemento.
Pseudo-código de los métodos Push y Pop
Este algoritmo almacena el valor dato en la pila manejando las variables tope como el puntero del último elemento insertado en la pila. Max es el número máximo de elementos que puede almacenar la pila, en caso de ser necesario.