Saltar al contenido principal

Estructuras de Datos: Queue

Estructuras de Datos: Queue en JavaScript

A diferencia del Stack, donde el último en llegar es el primero en salir, en una Queue (Cola) el orden es estrictamente cronológico. Es la estructura ideal para gestionar procesos que deben atenderse en el orden exacto en que fueron solicitados.

Para esta lección, utilizaremos estos 5 términos clave:

  1. Queue (Cola): Una colección lineal de elementos que sigue el principio FIFO.
  2. FIFO (First-In, First-Out): Concepto donde el primer elemento añadido es el primero en ser removido.
  3. Enqueue (Encolar): La operación de añadir un elemento al final de la estructura.
  4. Dequeue (Desencolar): La operación de eliminar el elemento situado en el inicio de la estructura.
  5. Front (Frente): El primer elemento de la lista, el próximo a ser procesado.

Funcionamiento de la Queue

Imagina la fila de un banco: la primera persona que llega es la primera en ser atendida (FIFO). En programación, implementamos una Queue (Cola) utilizando un Array, pero a diferencia del Stack, el Dequeue (Desencolar) se realiza desde el Front (Frente) de la estructura.

// Implementación básica de una Queue
const printQueue = [];

// Operación Enqueue (añadir al final)
printQueue.push('documento_1.pdf');
printQueue.push('foto_vacaciones.png');

// Operación Dequeue (quitar el primero en llegar)
// En JS, shift() elimina el primer elemento
const printingNow = printQueue.shift(); 

console.log(printingNow); // Output: 'documento_1.pdf'
console.log(printQueue[0]); // El nuevo Front es 'foto_vacaciones.png'

Diagrama de una Queue mostrando la entrada de datos por el final y la salida por el Front

Casos de Uso

La Queue (Cola) es vital para:

  • Print Spooling: Gestión de documentos enviados a una impresora.
  • Task Scheduling: Procesos del sistema operativo esperando tiempo de CPU.
  • Message Brokers: Sistemas de mensajería donde los mensajes deben procesarse en orden.