DEV Community

Juan Miguel Arias Mejias for 4GeeksAcademy

Posted on

Estructura de datos: Cola

Hola!

Hace un tiempo no escribo en este portal. Me gustaría regresar con un tema fundamental de la programación, estructuras de datos.

Las estructuras de datos son simplemente, formas diferentes de organizar los datos. Estas surgen de la necesidad de resolver problemas que son muy comunes o repetitivos en la labor del programador.

Vamos a centrarnos en la cola o "queue" del ingles.

La Cola, es una estructura de datos que se comporta de forma similar a una cola o fila en el banco, tomando en cuenta que en esta analogía, los datos son las personas, que llegan para ser atendidas.

Si la fila del banco esta vacía y llega una persona, pues lo más normal es que la primera persona que llegue sea la primera persona en ser atendida. Este es el principio fundamental de las colas. Primero que entra primero que sale. Primer dato que ingresa a la cola, primer dato que sale.

Digamos entonces, nuestra cola va a ser representada por una colección, de la siguiente forma:

[]

Si viene un dato a la cola, un dato que queremos encolar, por ejemplo un numero, se vería de la siguiente forma:

[1]

Y si este proceso se repite algunas veces:

[1, 2, 3]

Tenemos una colección de 3 ítems, que se han colado haciendo fila para ser procesados, en el momento que quiera procesar los datos, debo desencolar uno. En esta ocasión al hacerlo, debería de salir el primer dato que haya sido ingresado, de la siguiente forma:

[2, 3]

Como podemos notar, el primer dato que ingresó fue el número 1 y este ha sido el primero que ha salido. Si repetimos el proceso, quedaría de la siguiente forma nuestra cola:

[3]

De nuevo, se ve cómo es que el último que ingresó a la cola es el último en ser atendido.

Si te animas a implementar este comportamiento de cola, te animo a checar el video tutorial que he creado en Youtube.
Implementación de cola en golang

Gracias por leerme, Juan Miguel Arias Mejías

Te dejo mis redes: enlace
Pasa bonita vida.

Top comments (0)