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:
- ¿Cuál es el método más fácil para eliminar el último elemento de una matriz numpy 2D?
- ¿Encontrar la complejidad temporal de los algoritmos está relacionado con las matemáticas discretas?
- ¿Cuál es el algoritmo euclidiano para encontrar GCD? ¿Es un algoritmo tan bueno en términos de rendimiento y análisis de tiempo de ejecución?
- ¿Cuáles son algunos "problemas de práctica" en los que todos deberían trabajar para mejorar la programación (en cualquier lenguaje de programación)?
- ¿Qué tipo de algoritmo utiliza Google para clasificar los correos?
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