public class Colacircular {
/**
* Creates a new instance of <code>Colacircular</code>.
*/
public Colacircular()
{
}
/**
* @param args the command line arguments
*/
public static int frente=0, fin=0;
public static void main(String[] args) {
// TODO code application logic here
int max, opcion;
int [] colacirc;
Scanner ent=new Scanner(System.in);
System.out.print("Tamaño de la cola");
max=ent.nextInt();
colacirc=new int[max];
do
{
System.out.print("1) Insertar");
System.out.print("2) Eliminar");
System.out.print("3) Presentar");
System.out.print("4) Limpiar");
System.out.print("5) Salir");
opcion=ent.nextInt();
switch (opcion)
{
case 1 : Insertar(colacirc, max);
break;
case 2 : Eliminar (colacirc, max);
break;
case 3 : Presentar(colacirc, max);
break;
case 4 : frente=0;
fin=max;
case 5 : break;
default : System.out.println("Opción equivocada");
break;
}
} while(opcion !=5);
}
public static int siguiente(int posicion, int m)
{
return (posicion+1) % m;
}
public static void Insertar(int []c, int max)
{
Scanner ent=new Scanner (System.in);
if(frente==siguiente(siguiente(fin,max),max))
System.out.println(" !!!DESBORDAMIENTO DE COLA!!!! ");
else{
fin = siguiente(fin,max);
System.out.print("Ingrese elemento <<"+fin+">> de la cola :");
c[fin] = ent.nextInt();
}
}
// Método para ELIMINAR UN ELEMENTO
public static void Eliminar(int []c, int max)
{
if(frente==siguiente(fin,max))
System.out.println(" !!! COLA VACIA!!!");
else{
System.out.println("Eliminando el elemento <<"+frente+">> = "+c[frente]);
frente=siguiente(frente,max);
}
}
//Método para PRESENTAR LOS ELEMENTOS DE UNA COLA CIRCULAR
public static void Presentar(int []c, int max){
for(int i=frente; i!=siguiente(fin,max); i=siguiente(i,max))
System.out.println("Cola["+i+"] = "+c[i]);
}
}
La cola circular a diferencia de la cola simple, nos permite de manera contínua y finita ingeresar y eliminar elementos, tantos como se haya declarado un arreglo, los espacios se puedes reutilizar constantemente.