2. COLAS
Una cola es un grupo ordenado de elementos del mismo tipo, en la cual dichos elementos se añaden por un
extremo (Final) y se quitan por el otro extremo (Frente). Esto significa que los elementos se sacan en el mismo
orden en el que fueron insertados o introducidos en la cola, siendo por ello considerada como una estructura
de datos FIFO (First In First Out), es decir, que el primer elemento en entrar es el primer elemento en salir.
Una estructura FIFO funciona exactamente igual que una cola en un establecimiento, cuando llegas lo primero
que debes hacer es pedir la vez, en ese momento te sitúas detrás del último que llegó, esto es, al final de la
cola. A la hora de atender, el dependiente atiende a quién ocupa la primera posición de la cola, y así
sucesivamente hasta que te toque a ti.
4. IMPLEMENTACIÓN DE LA ESTRUCTURA COLA
De manera similar a las pilas, las colas definen una estructura no
estándar, de manera que se debe crear un nuevo tipo de dado, el
tipo cola, que debe tener los siguientes elementos:
Un arreglo de n elementos de algún tipo específico, puede incluso
ser un tipo estándar o no.
Un número que indica el elemento que está en la posición del
frente de la cola.
Un número que indica el elemento que está en la posición trasera
de la cola.
5. IMPLEMENTACIÓN DE LA ESTRUCTURA COLA
Suponiendo que los elementos son números enteros, una idea
para representar una cola en C/C++ es usar un arreglo para
contener los elementos y emplear otras dos variables para
representar la parte frontal y trasera de la cola.
6. OPERACIONES BÁSICAS CON COLAS
InicializarCola: nos permite dejar inicialmente vacía la cola una vez creada.
Encolar: permite añadir un elemento al final de la cola.
Desencolar: se usará para sacar un elemento de la cola.
ColaVacia: devolverá cierto si la cola está vacía antes de sacar un elemento de
la misma.
ColaLlena: sólo en aquellos casos en los que sea necesario determinar si la
cola se encuentra llena antes de añadir un nuevo elemento debido a la
implementación utilizada (sólo en el caso de implementación con tablas),
emplearemos esta operación de tipo lógico.
7. TIPOS DE COLAS
Colas simples: Se inserta por un sitio y se saca por otro, en el caso de la cola
simple se inserta por el final y se saca por el principio. Para gestionar este tipo
de cola hay que recordar siempre cual es el siguiente elemento que se va a
leer y cual es el último elemento que se ha introducido.
910
973
175
137
En este ejemplo el ultimo nodo es 137.
8. TIPOS DE COLA
Colas circulares: En las colas circulares se considera que después del último
elemento se accede de nuevo al primero. De esta forma se reutilizan las
posiciones que hayan quedado vacías, el final de la cola es a su vez el
principio, creándose un circuito cerrado
9. TIPO DE COLAS
Colas dobles: es un tipo de cola especial que permiten la inserción y eliminación de
elementos de ambos extremos de la cola. Puede representarse a partir de un vector y dos
índices, siendo su representación más frecuente una lista circular doblemente enlazada.
Esta estructura es una cola bidimensional en que las inserciones y eliminaciones se pueden
realizar en cualquiera de los dos extremos de la bicola.
11. APLICACIONES
En la vida real se tiene ejemplos numerosos de colas: la cola de un autobuses, cola para ingresar al cine, caravana de
coches en una calle, etc. En todas ellas el primer elemento (pasajero, coche, etc) que llega es el primero que sale.
Las colas se usan para almacenar datos que necesitan ser procesados según el orden de llegada. Una aplicabilidad de
las colas puede realizarse en un sistema de informático manejado a través de una red de computadoras donde se
comparte una sola impresora para todos los equipos conectados a la red; de tal manera que se imprimirán los
documentos en el orden en que se hace la petición de impresión de cada usuario. Formando así una cola de
impresión.
Una muy buena implementación de las colas como solución a una situación del entorno podría realizarse un
programa para manejar un planificador de citas en un consultorio médico, de tal manera que cada solicitud de una
cita se va almacenando en la cola, los datos requeridos podrían ser: el nombre del paciente y la fecha y hora de la
cita, la atención por parte del medico será en el mismo orden de fecha y hora en que se registró la cita.
En general, en una cola es una situación que vivimos a diario, el primero que llega será atendido de primero, pasando
a continuación el segundo de la cola al frente, y cada que llega un nuevo usuario este se colocará al final de la cola.
De aquí que el extremo por donde se insertan los elementos se llamará “final” y por donde se retiran se llama
“frente”.