Está en la página 1de 3

COLAS CIRCULARES

Concepto: Las colas lineales tienen un grave problema, como las extracciones
sólo pueden realizarse por un extremo, puede llegar un momento en que el
apuntador A sea igual al máximo número de elementos en la cola, siendo que
al frente de la misma existan lugares vacíos, y al insertar un nuevo elemento
nos mandará un error de overflow (cola llena).

Para solucionar el problema de desperdicio de memoria se implementaron las


colas circulares, en las cuales existe un apuntador desde el último elemento al
primero de la cola.

Procedimientos para insertar y eliminar:

ALGORITMO DE INICIALIZACIÓN

F < -- 0
A<-- 0

ALGORITMO PARA INSERTAR

Si (F+1=A) ó (F=1 y A=máximo) entonces


mensaje (overflow)
en caso contrario
inicio
si A=máximo entonces
A<--1
cola[A]<-- valor
en caso contrario
A <--A+1
cola[A]<-- valor
si F=0 entonces
F <-- 1
fin

ALGORITMO PARA EXTRAER

Si F=0 entonces
mensaje (underflow)
en caso contrario
x <-- cola[F]
si F=A entonces
F <-- 0
A<-- 0
en caso contrario
si F=máximo entonces
F <--1 en caso contrario F <-- F+1
Características:

 Es una estructura de datos en la que los elementos están de forma


circular.
 Cada elemento tiene un sucesor y un predecesor.
 Los elementos pueden consultarse, añadirse y eliminarse únicamente
desde la cabeza del anillo que es una posición distinguida.
 Existen dos operaciones de rotaciones, una en cada sentido, de manera
que la cabeza del anillo pasa a ser el elemento sucesor, o el predecesor,
respectivamente, de la cabeza actual.

Las COLAS, al igual que las pilas, son una estructura de datos de acceso
restrictivo. Al igual que en una pila únicamente se cuenta con 2 operaciones, la
operación insertar y la operación remover.

La diferencia entre una cola y una pila es que en la cola (como en una cola
para comprar boletos), el primero que llegó es al primero que se atiende, es
decir, una cola tiene un inicio y un final, los nuevos elementos que llegan se
agregan al final de la cola, cuando se remueve un elemento, se remueve del
inicio de la misma. A las colas se les conoce como estructuras FIFO (First In -
First Out), que quiere decir que el primero que entra, es el primero que sale.

Existe una implementación muy común de la cola que se conoce como cola
circular, esta implementación aprovecha el espacio en memoria de la
computadora de la siguiente forma: inicialmente aparta un espacio para la cola,
conforme llegan los elementos los va agregando al final, cuando remueve un
elemento lo hace del inicio de la cola, una vez que ha terminado con el espacio
de memoria que había apartado, revisa si ya se liberó el espacio al inicio de la
cola y "da la vuelta" para aprovechar el espacio al máximo, la implementacion
que se presenta a continuación es la de una cola circular.

Al igual que en la pila, en la cola es muy importante revisar si todavía hay


espacio para seguir guardando elementos, o si la cola está vacía.
Cola Circular

Características Concepto

 Es una estructura de datos en la que los


elementos están de forma circular. Son una estructura de datos de
 Cada elemento tiene un sucesor y un acceso restrictivo. Al igual que
predecesor.
en una pila únicamente se
 Los elementos pueden consultarse, añadirse y
eliminarse únicamente desde la cabeza del cuenta con 2 operaciones, la
anillo que es una posición distinguida. operación insertar y la operación
 Existen dos operaciones de rotaciones, una en remover.
cada sentido, de manera que la cabeza del
anillo pasa a ser el elemento sucesor, o el
predecesor, respectivamente, de la cabeza
actual.

Procedimientos para:

Insertar Eliminar

Si (F+1=A) ó (F=1 y A=máximo) entonces Si F=0 entonces


mensaje (overflow) mensaje (underflow)
en caso contrario en caso contrario
inicio x <-- cola[F]
si A=máximo entonces si F=A entonces
A<--1 F <-- 0
cola[A]<-- valor A<-- 0
en caso contrario en caso contrario
A <--A+1 si F=máximo entonces
cola[A]<-- valor F <--1 en caso
si F=0 entonces contrario F <-- F+1
F <-- 1
fin

También podría gustarte