DEV Community

Estructura de datos: Pila

Hola! Soy yo de nuevo

En esta ocasión venimos a escribir sobre la estructura de datos pila.

La pila o "stack" del ingles, es la contra parte de la cola(te recomiendo que leas el articulo anterior), se describe así: El primer dato que entra es el último en salir o el último dato que ingresa es el primero en salir.

Lo podemos ver de esta forma. Cuando tenemos una pila de platos sucios, los apilamos, en espera de ser lavados. Cuando colocamos solamente uno, se vería de la siguiente forma:

1 - Plato sucio -

Como no hemos estado atentos a la pileta, de repente ingresan 2 platos sucios a la vez ¡Y no hemos procesado ni uno!

3 - Plato sucio -
2 - Plato sucio -
1 - Plato sucio -

Deberíamos de ponernos a ello y empezar a limpiarlos, en esta ocasión siguiendo el algoritmo de pila, el cuál nos dice que el último plato sucio que haya sido ingresado es el primero que debo de lavar. ¡Pues a trabajar!

- / - Sonidos de limpieza - / -

Listo, hemos lavado uno ¿Cómo se ve nuestra pila ahora?

2 - Plato sucio -
1 - Plato sucio -

Lavemos otro!

- / - Sonidos de limpieza - / -

¡Ufff, qué trabajo más arduo! Debería de solamente quedarnos un plato sucio pendiente, y según el algoritmo de pila, debería de quedarnos el primer plato que ingresó.

1 - Plato sucio -

Efectivamente, el plato pendiente es el primero que ingresó a la pila. Bueno, será momento de lavarlo, nadie lo hará por nosotros.

- / - Sonidos de limpieza - / -

¡Te felicito de haber llegado aquí! Has sido capaz de lavar toda la pila, vaya logro.

Por acá te dejo el vídeo tutorial de la implementación en Golang: https://www.youtube.com/watch?v=IDNc_qb5110

Además te dejo el repositorio: https://github.com/juanmiguelar/Stack-golang

Y por si fuera poco, te dejo mis redes:
https://linkr.bio/juanmiguelar

Gracias por leer
Pasa bonita vida

Discussion (0)