Implementación de una estructura de datos de cola en JavaScript [Ejemplos]

Una cola es una estructura de datos de uso común en programación. Aquí se explica cómo implementar y usar una cola en JavaScript.

JavaScript no incluye una estructura de datos denominada específicamente cola. – pero eso no significa que la funcionalidad no esté allí.

Las matrices de JavaScript se pueden usar de la misma manera:es solo que la terminología es un poco diferente. En lugar de duplicar la funcionalidad de matriz para las colas, la funcionalidad de cola existe en las funciones de matriz de JavaScript.

¿Qué es una estructura de datos de cola?

Una cola es una secuencia de artículos en un orden específico. Los elementos se pueden poner en cola (agregado a la cola) o retirado (eliminado de la cola).

Los elementos se agregan al principio de la cola y, a medida que se completan, se eliminan del final de la cola. Esto se llama primero en entrar, primero en salir (FIFO ).

Si alguna vez ha hecho cola en la caja del supermercado, eso es una cola. Los clientes se unen a la cola (poner en cola) cuando desean pagar y salen de la tienda y abandonan la cola (quitar cola) después de pagar sus artículos. Las colas en la programación funcionan exactamente de la misma manera:agregue elementos a la cola y elimínelos una vez que se complete la tarea que desea realizar en ellos.

Matrices de JavaScript como colas

Las matrices de JavaScript crean excelentes colas:la funcionalidad requerida está ahí; simplemente se incluye como parte del objeto Array en lugar de como un objeto Queue separado.

El código habla, así que aquí hay una cola implementada usando una matriz de JavaScript:

Definición de la cola

A continuación, se utiliza una matriz vacía para inicializar la cola:

var petsQueue = [];// Create an empty array to act as a queue

Añadir elementos a la cola (poner en cola)

El empujar() El método se puede usar en la matriz para agregar elementos a la cola:

petsQueue.push('dog'); // Adds 'dog' to the queue
petsQueue.push('cat'); // Adds 'cat' to the queue
petsQueue.push('bird'); // Adds 'bird' to the queue

Ver el contenido de la cola

Puede enviar el contenido de la cola a la consola usando console.log() :

console.log(petsQueue) // [ "dog", "cat", "bird" ]

Eliminar elementos de la cola (Dequeue)

Al eliminar un elemento de la cola, queremos hacer algo con él. A continuación, se elimina un elemento de la cola y se almacena en una nueva variable para su uso:

var nextPet = petsQueue.shift(); // The queue is now ['cat', 'bird']
console.log(nextPet);            // displays 'dog'

Ahora puedes realizar acciones en nextPet y, cuando haya terminado, pase al siguiente elemento de la cola.

Puede almacenar cualquier tipo de objeto o variable en la cola:los objetos que representan tareas o personas se pueden agregar y eliminar para su procesamiento.

Ejemplo completo:uso de una matriz de JavaScript como cola

A continuación, se define una cola, se agregan algunos elementos y luego se usa un bucle while para procesar la cola hasta que se vacía:

var petsQueue = [];// Create an empty array to act as a queue

petsQueue.push('dog'); // Adds 'dog' to the queue
petsQueue.push('cat'); // Adds 'cat' to the queue
petsQueue.push('bird'); // Adds 'bird' to the queue

console.log(petsQueue) // Check the contents of the queue - [ "dog", "cat", "bird" ]

// Loop through the queue until it is empty (when it's length is zero)
while (petsQueue.length > 0) {
    var nextPet = petsQueue.shift(); // Dequeue the next pet and assign them to a variable
    console.log(nextPet + ' has been washed!');// Do something with the item taken from the queue
}   

console.log(petsQueue) // Confirm that the queue was fully processed - it is now empty with the value [ ]