Una cola circular es una estructura de datos que almacena elementos en una lista (en este caso LinkedList) y que permite acceder a los datos por uno de los dos extremos de la lista. Un elemento se inserta en la cola (parte final) y se suprime/elimina por la parte frontal.
Código (colas.java):
package colas;
import java.util.LinkedList;
import java.util.Queue;
public class Colas {
public static void main(String[] args) {
Queue<Integer> cola = new LinkedList<>();
llenar(cola);
desplazar(cola);
}
//llenar cola
private static void llenar(Queue<Integer> cola) {
for (int i = 1; i < 10; i++) {
cola.add(i);
}
}
//correr una posición <-
private static void desplazar(Queue<Integer> cola) {
mostrar(cola);
for (int i = 1; i < 9; i++) {
cola.add(cola.poll());
mostrar(cola);
}
}
private static void mostrar(Queue<Integer> cola) {
System.out.println(cola);
}
}
Resultado:
run:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[2, 3, 4, 5, 6, 7, 8, 9, 1]
[3, 4, 5, 6, 7, 8, 9, 1, 2]
[4, 5, 6, 7, 8, 9, 1, 2, 3]
[5, 6, 7, 8, 9, 1, 2, 3, 4]
[6, 7, 8, 9, 1, 2, 3, 4, 5]
[7, 8, 9, 1, 2, 3, 4, 5, 6]
[8, 9, 1, 2, 3, 4, 5, 6, 7]
[9, 1, 2, 3, 4, 5, 6, 7, 8]
BUILD SUCCESSFUL (total time: 0 seconds)