Pila (Stack)

Pila StackEn d铆as pasados hablamos acerca de las Colas o Queue las cuales siguen la filosof铆a FIFO (First In – First Out) o Primero en entrar – Primero en salir. Sin embargo, hoy hablaremos de las Pilas o Stack las cuales son un poco diferentes de las Colas, ya que 茅stas siguen la filosof铆a LIFO (Last In – First Out) o 脷ltimo en entrar primero en salir.

Antes de entrar en detalle me gustar铆a explicar qu茅 son las Pilas de una forma mas simple, para lo cual imaginaremos que tenemos varios platos sucios en casa y queremos lavarlos. Para empezar a lavarlos los tenemos que apilar para tenerlos todos juntos y cada vez que queramos un plato lo que haremos ser谩聽tomar el de hasta arriba. Cuando terminamos de lavarlo tomamos el que sigue desde arriba y as铆 hasta terminar; pero supongamos que antes de terminar de lavar llega otra persona y nos pone un plato en la pila de platos que ya tenemos, entonces el plato nuevo quedar谩 hasta arriba. Cuando queramos lavar el siguiente plato tomaremos este 煤ltimo que nos acaban de dejar.

Si nos damos cuenta siempre tomamos el de hasta arriba y cuando entra un plato nuevo a la pila siempre entra por arriba.

Estructura de datos - Pila (Stack)
Fig.1: Muestra como un elemento es depositado en la pila(Izquierda) y como queda la pila despu茅s de agregar el elemento(Derecha)

Como podemos apreciar en la imagen anterior, cuando un elemento entra a la Pila siempre entra por la parte delantera coloc谩ndose hasta el principio.

Estructura de datos - Pila (Stack)
Fig.2: Muestra como sale un elemento de la pila(Izquierda) y Como queda la Pila despu茅s de quitar el elemento.

Como podemos apreciar en la imagen anterior cuando un elemento sale de la Pila siempre sale el 煤ltimo elemento que entr贸.

Las pilas son estructuras de datos din谩micas que nos permiten agregar cuantos elementos queramos a la Pila, sin embargo esto no es del todo cierto ya que las Pilas pueden estar limitadas por el espacio en memoria que el programa tenga o que nosotros definamos el m谩ximo de elementos que puede contener la Pila.

Estructura de datos - Pila (Stack)
Fig.3: Muestra como un elemento quiero entrar a una Pila la cual tiene definido un n煤mero determinado de espacios por lo cual el elemento que quiere entrar es rechazado.

Utilidad de las Pilas:

Como programadores, el primer encuentro que tenemos con las Pilas pueden ser los Errores como StackOverFlow muy comunes cuando realizamos alguna funci贸n con recursividad, ya que las funciones cada vez que se llaman a s铆 mismas, guardan la posici贸n en la que se quedaron ejecutando el programa, debido a que una vez que la funci贸n retorne, el programa deber谩 continuar ejecut谩ndose donde se qued贸.

Los compiladores tambi茅n las utilizan para convertir las Cadenas Infijas a Posfijas (pero hablaremos de esto posteriormente).

Espero que esta informaci贸n les sea de utilidad y si te gust贸, por favor dale Like y comp谩rtelo ya que esto me ayudar谩 a crear m谩s y mejor material.

Art铆culos relacionados

Estructura de datos 鈥 Queue (Cola) En esta entrada quiero platicarles de las Colas (Queue) un tipo de estructura de datos muy utilizada. 驴Pero que es exactamente una colas?, Cuando digo...
Estructuras de datos 鈥 Listas ligadas Sin duda una de las partes mas emocionantes cuando programamos es la parte de la algoritmia donde tenemos que usar la mente para resolver problemas qu...
Estructura de datos 鈥 脕rboles Los 脕rboles son las estructuras de datos mas utilizadas, pero tambi茅n una de las mas complejas, Los 脕rboles se caracterizan por almacenar sus nodos e...

Oscar Blancarte

Ideol贸gico, Innovador y emprendedor, Padre, Tecn贸logo y Autor, amante de la ciencia y la tecnolog铆a en todos sus colores y sabores. Arquitecto de software & Full Stack Developer con experiencia en la industria del desarrollo de software y la consultor铆a. Amante de la programaci贸n y el Ajedrez.

3 comentarios en “Pila (Stack)

Deja un comentario

Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *