Professional Documents
Culture Documents
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).
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:
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
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