Estoy haciendo lo que me dice la letra, que es armar tantos buffers circulares como tengo niveles de prioridades. Cuando me llega un dato lo meto en el buffer que le corresponde según su prioridad. La letra dice que no hay que tener en cuenta si la cola está llena o no, así que por ahora el buffer siempre lo agrega y pisa a los datos viejos.
Lo que no entiendo es qué dato sacar cuando me piden uno. Para mi el algoritmo debería ser:
1. Inicializo p = 0 (prioridad maxima)
2. Elijo el buffer con prioridad p.
3. Si el buffer tiene datos {
Devuelvo el más viejo y fin del algoritmo
}else{
El problema es que el paso 3 requiere saber si el buffer está vacío o no. Con ese algoritmo, se atienden primero todos los datos de prioridad p antes de pasar a los datos de prioridad p+1, por eso necesito saber cuándo está vacía la cola p. Como la letra dice q no hay q implementar eso, sospecho q entendí mal el comportamiento de las prioridades. Podría hacer una función estaVacia() para una cola y que devuelva siempre 0, pero volvería medio irrelevante lo de las prioridades porque solo usaría la cola p=0.
Gracias