Cola (estructura de datos)
Keywords: Cola (estructura de datos), Estructura de datos, FIFO
Una cola es un tipo de estructura de datos, caracterizado por una secuencia de elementos en la que solo pueden añadirse elementos por un extremo y solo pueden retirarse por el otro. También se le llama estructura FIFO (First in, first out), debido a que el primer elemento en entrar será también el primero en salir.
Tipos de colas
- Colas de prioridad: En ellas, los elementos se atienden en el orden indicado por una prioridad asociada a cada uno. Si varios elementos tienen la misma prioridad, se atenderán de modo convencional según la posición que ocupen.
Hay 2 formas de implementación:
- Añadir un campo a cada nodo con su prioridad. Resulta conveniente mantener la cola ordenada por orden de prioridad.
- Crear tantas colas como prioridades haya, y almacenar cada elemento en su cola.
- Bicolas: son colas en donde los nodos se pueden añadir y quitar por ambos extremos; se les llama DEQUE (Double Ended QUEue). Para representar las bicolas lo podemos hacer con un array circular con Ini y Fin que apunten a cada uno de los extremos. Hay variantes:
- Bicolas de entrada restringida: Son aquellas donde la inserción sólo se hace por el final, aunque podemos eliminar al principio ó al final.
- Bicolas de salida restringida: Son aquellas donde sólo se elimina por el final, aunque se puede insertar al principio y al final.
- Colas de prioridad: son las que cumplen dos reglas :
- De dos elementos siempre se atenderá antes al que tenga mayor prioridad.
- Si dos elementos tienen la misma prioridad se atiende primero el que llego antes.
Realización Se ponen todos los nodos en la misma cola. Su particularidad es que cada nodo tiene un campo adicional con la prioridad del dato; de tal forma que cuando insertamos nuevos datos, el nuevo nodo, se inserta al final de la cola de los que tengan su misma prioridad.
