Estructuras de datos y algoritmos: colas
Últimamente, hemos visto la estructura de datos de la pila y cómo implementar nuestra propia versión de pilas usando JavaScript. En este artículo, veremos otro tipo de estructura de datos que se incluye en el mismo grupo y que a menudo se menciona junto con las pilas. Vamos a hablar de las colas esta vez.
Colas: Conceptos
Las colas son tan importantes como las pilas en el mundo de la informática. Se utilizan en muchas situaciones diferentes. Podría afirmar que son imprescindibles en cualquier sistema grande y grande que requiera mucha comunicación, programación y priorización.
# ¿Qué son las colas?
Una cola es una estructura de datos lineal donde los elementos se organizan uno tras otro. Al igual que las pilas, tienen algunas restricciones en cuanto a cómo se realizan las operaciones (inserción y borrado) sobre ellas. En las colas, las operaciones se realizan en dos extremos en lugar de en un solo extremo como en el caso de las pilas. Una cola funciona según el principio de primero en entrar, primero en salir (FIFO). Si quisiéramos ilustrar las colas con un ejemplo de nuestra vida diaria, podríamos ver la cola de personas en una tienda Starbucks esperando su café. El primero que llega es el primero en ser servido y así sucesivamente...
Entonces, cuando alguien viene a comprar un café, se va al final de la fila. En términos de estructuras de datos, diríamos que estamos en cola en la cola. En otras palabras, estamos insertando un nuevo elemento al final de la cola. Por el contrario, si se sirve al que está al frente de la cola, entonces dejará su lugar al que está detrás y así sucesivamente. Una vez más, en términos de estructuras de datos, diríamos que estamos eliminando un elemento de la cola o eliminando un elemento del principio de la cola.
# ¿Por qué usaría colas?
No puedo contar los diferentes escenarios donde las colas son más adecuadas que cualquier otro tipo de estructura de datos. Sin embargo, enumeraría dos razones principales que podrían darle una idea de que posiblemente necesite usar colas para una situación particular.
- Esperando…
2. Un Orden Justo…
Si el problema que estás resolviendo quiere que garantices que el primero que llega tiene que ser el primero en ser atendido, entonces una cola para el rescate. El hecho de que las colas sigan el principio FIFO garantiza un orden justo.
Colas: Implementación en JavaScript
Ahora, vamos a implementar nuestra versión personalizada de colas usando JavaScript. En el último artículo, mencionamos que las pilas se pueden implementar mediante el uso de matrices o listas vinculadas, según sus necesidades. Sin embargo, para la estructura de datos de la cola, usar una lista enlazada sería un enfoque más inteligente sin importar. ¿Por qué?
En pocas palabras, si usamos matrices, la operación de eliminación de la cola , por ejemplo, requeriría cambiar la matriz cada vez que eliminemos un elemento de la cola. Esto llevaría mucho tiempo. Por lo tanto, aumenta la complejidad del tiempo de su solución. Además, suponiendo que no hará ningún cambio después de sacar un elemento de la cola, esto puede resultar en una pérdida de memoria porque está dejando espacios en blanco en la matriz. Nuevamente, esto conduce a un aumento en la complejidad del espacio de su solución.
Ahora, hagámoslo usando listas enlazadas en su lugar...
Aún no hemos terminado... Este fragmento de código necesita algunas mejoras...
Colas: ahora te toca a ti...
# Tarea Uno
Use su lenguaje de programación preferido para agregar una nueva operación back() para mostrar el valor al final de la cola.
# Tarea Dos
Necesitamos una operación para imprimir la cola, ¿puedes hacer eso por nosotros, por favor? Aún así, usa tu lenguaje de programación preferido...
¡Espera un segundo, por favor! Antes de irnos, si quieres, conectemos…
- en youtube
- En Linkedin
- en Twitter

![¿Qué es una lista vinculada, de todos modos? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































