Estructuras
de Datos LinealesColas
|
||
También llamadas
FIFO: First In First Out (Primero en Entrar, Primero en Salir).
Esta estructura puede compararse con la cola del cajero de un supermercado, donde los clientes son atendidos en el orden de llegada. A continuación se muestra la especificación formal del tipo Cola Especificación cola (elemento) usa booleanoFespecificación
En este tipo de implementación la cola se implementa por medio de un vector circular, es decir a medida que se añaden y se borran elementos de la cola cuando se llega al final del vector se continua por el principio. Se utilizan además dos apuntadores, uno que señala la cabeza de la cola y otro que señala el final de ella. Para evitar confusiones cuando ambos apuntadores señalan a un mismo elemento, no sabiendo si es porque la cola está vacía o está llena, se añadirá un contador que dirá el número de elementos en la cola. cola = = tupla cab, col, número: entero ftupla var c.col := 1 c.numero := 0 retorna p función encolar (ent c: cola, ent e: elemento) retorna cola si c.número = MAX entonces c.cola := c.cola mod MAX + 1 {recorre circularmente la secuencia de números 1, 2, ..., MAX, 1, 2, ...} c. número := c.número + 1 retorna p Puede verse fácilmente que
que el tiempo de ejecución de las operaciones es de Q
(1), por tanto es muy eficiente en ejecución,
pero tiene el inconveniente de que hay que reservar un máximo de
espacio de memoria para el vector, espacio que en muchos casos no se aprovecha.
|
||
|
||
Autoría
Correo de contacto Fecha de actualización |