You are on page 1of 4

COLA CIRCULAR

Una cola circular o anillo es una estructura de datos en la que los elementos están de
forma circular y 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.

La cola circular de la figura anterior tiene siete datos enteros, con el entero 1 primero.
Esta cola está llena y no puede almacenar más datos hasta que front avance una posición
en sentido horario (para recuperar el entero 1) y rear avance una posición en la misma
dirección (para identificar la posición que contendrá el nuevo entero). Al igual que con la
cola lineal, la razón de la posición vacía, que identifica front, implica el comportamiento
circular de la cola. Inicialmente, front y rear identifican la misma posición, lo que indica
una cola vacía. Entonces rear avanza una posición por cada nueva inserción. De forma
similar, front avanza una posición por cada recuperación/borrado.
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.

La representación gráfica de esta estructura es la siguiente:

La condición de vacío en este tipo de cola es que el apuntador F sea igual a cero.

Las condiciones que debemos tener presentes al trabajar con este tipo de estructura son las
siguientes:

 Over flow, cuando se realice una inserción.


 Under flow, cuando se requiera de una extracción en la cola.
 Vacio

En la siguiente figura se muestra gráficamente la estructura de una cola circular, con dos
punteros: frente y final, para señalar el inicio y fin de recorrido de la cola respectivamente.
COLA DOBLE

Esta estructura es una cola bidimensional en que las inserciones y eliminaciones


se pueden realizar en cualquiera de los dos extremos de la bicola. Gráficamente
representamos una bicola de la siguiente manera:

Existen dos variantes de la doble cola:

 Doble cola de entrada restringida.


 Doble cola de salida restringida.

La primer variante sólo acepta inserciones al final de la cola, y la segunda acepta


eliminaciones sólo al frente de la cola
Una cola doble es una estructura en la que, por la forma en que se realizan las
operaciones, puede comportarse como pila o como cola.

Para ilustrar la forma de operar de una cola doble, consideremos que la figura anterior un
nuevo elemento desea agregarse a la cola, éste podría hacerlo de tal forma que ocupe la
primera posición o la última, los elementos que se encuentran al principio y al final de la
cola pueden retirarse. La doble cola ó bicola es una cola bidimensional en la que las
inserciones y eliminaciones se pueden realizar en cualquiera de los dos extremos de la

Lista pero no por la mitad.


Variantes de las Bicolas

Existen dos variantes de la doble cola:

Doble cola de entrada restringida.-


Este tipo de doble cola acepta solamente la inserción de elementos por un extremo;
mientras que puede eliminar por ambos.

Doble cola de salida restringida.-


Este tipo de doble cola acepta solamente la eliminación de elementos por un extremo;
mientras que puede insertar por ambos.

You might also like