Doble cola

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:

Doble cola

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

ALGORITMOS DE ENTRADA RESTRINGIDA

Algoritmo de inicialización

F < -- 1
A <-- 0

Algoritmo para insertar

	Si A=máximo entonces
	         mensaje (overflow)
	en caso contrario
	         A <--A+1
	         cola[A]<-- valor

Algoritmo para extraer

Si F&gtA entonces
	         mensaje (underflow)
	en caso contrario
	         mensaje (frente/atrás)
		si frente entonces
		       x <-- cola[F]
		       F <-- F+1
		en caso contrario
		       x <-- cola[A]
		       A <-- A-1

ALGORITMOS DE SALIDA RESTRINGIDA

Algoritmo de inicialización

F <--1
A <-- 0

 Algoritmo para insertar

Si F&gtA entonces
	         mensaje (overflow)
	en caso contrario
	         mensaje (Frente/Atrás)
	          si Frente entonces
		cola[F] <--valor
	          en caso contrario
		A <-- A+1
		cola[A] <--valor

Algoritmo para extraer

Si F=0 entonces
	         mensaje (underflow)
	en caso contrario
	         x <--cola[F]
	         F <-- F+1

Fuente: Apunte de Estructura de Datos del Instituto tecnológico de la Paz