¿Qué es la representación de colas usando array?

Para representar una cola usando una matriz, necesita dos punteros de índice: uno para la cabeza de la cola y otro para la cola. Las inserciones se realizan ajustando el puntero de la cola y las eliminaciones ajustando el puntero de la cabeza. Si cualquiera de los punteros avanza más allá del índice de matriz válido, se establece en el extremo opuesto de la matriz (haciendo que la matriz sea circular).

Por lo general, una variable de contador es innecesaria si observamos que cuando el puntero de la cabeza es igual al puntero de la cola, entonces la cola está vacía, mientras que si los punteros de la cabeza y la cola difieren en 1, entonces la cola está llena. Esto presupone que el puntero de la cabeza apunta al siguiente elemento que se quitará mientras que el puntero de la cola apunta a la siguiente posición vacante.

Algunos pseudocódigo para una matriz de n elementos:

función de inserción
SI cola = cabeza + 1 OR (cola = 0 Y cabeza = n-1) ENTONCES
LANZAMIENTO cola EXCEPCIÓN COMPLETA
MÁS
array [tail] = newElement
cola = cola – 1
SI la cola <0 ENTONCES
cola = n-1
TERMINARA SI
TERMINARA SI
Función END

función dequeue
SI cabeza = cola ENTONCES
TIRO DE LANZAMIENTO Vacío EXCEPCIÓN
MÁS
dequeuedElement = array [head]
cabeza = cabeza-1
SI cabeza <0 ENTONCES
cabeza = n-1
TERMINARA SI
TERMINARA SI
RETORNO dequeuedElement
Función END