Una cola es una estructura de datos lineal. Esta estructura de datos sigue un orden particular en el que se realizan las operaciones. El orden es Primero en entrar, primero en salir ( FIFO ). Significa que el elemento que se inserta primero en la cola saldrá primero y el elemento que se inserte último saldrá último. Es una lista ordenada en la que la inserción de un elemento se realiza desde un extremo que se conoce como extremo posterior y la eliminación de un elemento se realiza desde el otro extremo que se conoce como extremo frontal. Similar a las pilas, se pueden realizar múltiples operaciones en la cola. Cuando se inserta un elemento en una cola, la operación se conoce como Enqueue y cuando se elimina un elemento de la cola, la operación se conoce como Dequeue. Es importante saber que no podemos insertar un elemento si el tamaño de la cola está lleno y no podemos eliminar un elemento cuando la cola en sí está vacía. Si intentamos insertar un elemento incluso después de que la cola esté llena, dicha condición se conoce como desbordamiento, mientras que si intentamos eliminar un elemento incluso después de que la cola esté vacía, dicha condición se conoce como subdesbordamiento.
Operaciones de cola principal:
- void enqueue (valor flotante): cuando se realiza esta operación, se inserta un elemento en la cola al final, es decir, en la parte trasera.
- int dequeue(): cuando se realiza esta operación, se elimina un elemento del front-end y se devuelve.
Operaciones de cola auxiliar:
- int front(): esta operación devolverá el elemento al frente sin eliminarlo.
- int rear(): esta operación devolverá el elemento a la parte trasera sin eliminarlo.
- int isEmpty(): Esta operación indica si la cola está vacía o no.
- int size(): Esta operación devolverá el tamaño de la cola, es decir, el número total de elementos.
Tipos de colas:
- Cola simple: la cola simple, también conocida como cola lineal, es la versión más básica de una cola. Aquí, la inserción de un elemento, es decir, la operación de puesta en cola, tiene lugar en el extremo posterior y la eliminación de un elemento, es decir, la operación de eliminación de cola, tiene lugar en el extremo delantero.
- Cola circular: en una cola circular, el elemento de la cola actúa como un anillo circular. El funcionamiento de una cola circular es similar al de una cola lineal excepto por el hecho de que el último elemento está conectado al primero. Su ventaja es que se aprovecha mejor la memoria. Esto se debe a que si hay un espacio vacío, es decir, si no hay ningún elemento presente en una determinada posición de la cola, se puede agregar fácilmente un elemento en esa posición.
- Cola de prioridad: esta cola es un tipo especial de cola. Su especialidad es que organiza los elementos en una cola en función de alguna prioridad. La prioridad puede ser algo donde el elemento con el valor más alto tiene la prioridad, por lo que crea una cola con un orden decreciente de valores. La prioridad también puede ser tal que el elemento con el valor más bajo obtenga la prioridad más alta, por lo que a su vez crea una cola con un orden creciente de valores.
- Dequeue: Dequeue también se conoce como Double Ended Queue. Como sugiere el nombre, doble extremo significa que un elemento se puede insertar o eliminar de ambos extremos de la cola, a diferencia de las otras colas en las que solo se puede hacer desde un extremo. Debido a esta propiedad, es posible que no obedezca la propiedad Primero en entrar, primero en salir.
Implementación de cola:
- Asignación secuencial: una cola se puede implementar utilizando una array. Puede organizar un número limitado de elementos.
- Asignación de lista enlazada: una cola se puede implementar utilizando una lista enlazada. Puede organizar un número ilimitado de elementos.
Aplicaciones de cola:
- Programación múltiple: Programación múltiple significa que se están ejecutando múltiples programas en la memoria principal. Es esencial organizar estos programas múltiples y estos programas múltiples se organizan como colas.
- Red: en una red, una cola se utiliza en dispositivos como un enrutador o un conmutador. otra aplicación de una cola es una cola de correo, que es un directorio que almacena datos y controla archivos para mensajes de correo.
- Programación de trabajos: la computadora tiene la tarea de ejecutar una cantidad particular de trabajos que están programados para ejecutarse uno tras otro. Estos trabajos se asignan al procesador uno por uno, que se organiza mediante una cola.
- Recursos compartidos: las colas se utilizan como listas de espera para un único recurso compartido.
Aplicación en tiempo real de Queue:
- Línea de cabina de cajero automático
- Línea de mostrador de boletos
- Secuencia de pulsación de teclas en el teclado
- programación de tareas de la CPU
- Tiempo de espera de cada cliente en call centers.
Ventajas de la cola:
- Una gran cantidad de datos se pueden administrar de manera eficiente con facilidad.
- Las operaciones como la inserción y la eliminación se pueden realizar con facilidad ya que sigue la regla de primero en entrar, primero en salir.
- Las colas son útiles cuando varios consumidores utilizan un servicio en particular.
- Las colas son rápidas para la comunicación entre procesos de datos.
- Las colas se pueden utilizar en la implementación de otras estructuras de datos.
Desventajas de la cola:
- Las operaciones como la inserción y eliminación de elementos del medio consumen mucho tiempo.
- Espacio limitado.
- En una cola clásica, solo se puede insertar un nuevo elemento cuando los elementos existentes se eliminan de la cola.
- La búsqueda de un elemento lleva tiempo O(N).
- El tamaño máximo de una cola debe definirse antes.
Publicación traducida automáticamente
Artículo escrito por shreyasnaphad y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA