Una cola es una estructura de datos, caracterizada por
ser una secuencia de elementos en la que la operación de inserción push se
realiza por un extremo y la operación de extracción pop por el otro. También se
le llama estructura FIFO (del inglés First In First Out), debido a que el
primer elemento en entrar será también el primero en salir.
UTILIZACIÓN
Las colas se utilizan en sistemas informáticos,
transportes y operaciones de investigación (entre otros), dónde los objetos,
personas o eventos son tomados como datos que se almacenan y se guardan
mediante colas para su posterior procesamiento. Este tipo de estructura de
datos abstracta se implementa en lenguajes orientados a objetos mediante
clases, en forma de listas enlazadas.
Una cola es una estructura de datos, caracterizada por
ser una secuencia de elementos en la que la operación de inserción push se
realiza por un extremo y la operación de extracción pop por el otro. También se
le llama estructura FIFO (del inglés First In First Out), debido a que el
primer elemento en entrar será también el primero en salir.
Las colas se utilizan en sistemas informáticos,
transportes y operaciones de investigación (entre otros), dónde los objetos,
personas o eventos son tomados como datos que se almacenan y se guardan
mediante colas para su posterior procesamiento. Este tipo de estructura de
datos abstracta se implementa en lenguajes orientados a objetos mediante
clases, en forma de listas enlazadas.
TIPOS
DE COLAS
Colas
circulares (anillos): en las que el último elemento y el primero
están unidos.
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 Inicio 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 inicio ó al final.
Bicolas
de salida restringida: Son aquellas donde sólo se elimina por
el final, aunque se puede insertar al inicio y al final.
OPERACIONES
BÁSICAS
Crear: se crea la cola vacía.
Encolar (añadir, entrar, insertar): se añade un elemento
a la cola. Se añade al final de esta.
Desencolar (sacar, salir, eliminar): se elimina el
elemento frontal de la cola, es decir, el primer elemento que entró.
Frente (consultar, front): se devuelve el elemento
frontal de la cola, es decir, el primer elemento que entró.
COLAS
EN PASCAL
Clase PscColas,
Matriz[]:Cadena, Posición, Valor:Entero
Privado:
Proc
Comenzar
ReDim Matriz,1
Posición = 0
Valor = 0
FinProc
Proc
Terminar
Borrar Matriz
FinProc
Proc
Longitud:Entero
Devolver Límite(Matriz)
FinProc
Proc
ReDimencionarLaCola
ReDim Preservar Matriz, LongMat(Matriz) + 1
FinProc
Público:
Proc
Encolar(Contenido:Cadena)
Si
Posición = LongMat(Matriz) Entonces ReDimencionarLaCola
Matriz[Posición] = Contenido
Posición = Posición + 1
FinProc
Proc
DesEncolar
Si
Neg(Valor >= Límite(Matriz)) Entonces Valor = Valor + 1
FinProc
Proc
FrenteCola:Cadena
Devolver Matriz[Valor]
FinProc
Proc
FondoCola:Cadena
Devolver Matriz[Límite(Matriz)]
FinProc
Prop
ColaLongitud:Entero
Lec:Longitud
FinProp
Privado:
Constructor: Comenzar
Destructor:
Terminar
FinClase