/**
* @(#)ColaCircular.java
*
* Programa para el manejo de una cola circular,
* donde especificamos el tamaño de la cola,
* insertamos los elementos de la tabla, se valida
* que no se desborde la tabla, que la cola no este
* llena.
*
* @author Ricardo Camacho Lamas
* @version 1.00 2014/4/11
*/
import java.util.Scanner;
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; // se definen las variables requeridas
public static void main(String[] args)
{
// TODO code application logic here
int max, opcion;
int [] colacir;
Scanner ent=new Scanner(System.in);
System.out.println("Tamaño de la Cola ");
max=ent.nextInt();
colacir=new int[max];
fin = max - 1;
frente = siguiente(fin,max);
do
{
System.out.println("Programa para manejo de Cola Circular");
System.out.println("-------------------------------------");
System.out.println(" 1.- Insertar ");
System.out.println(" 2.- Extraer ");
System.out.println(" 3.- Presentar");
System.out.println(" 4.- Limpiar ");
System.out.println(" 5.- Salir ");
System.out.println("-------------------------------------");
System.out.println(" ");
opcion=ent.nextInt();
switch(opcion)
{
case 1: insertar(colacir, max);
break;
case 2: elimina(colacir, max);
break;
case 3: presentar(colacir, max);
break;
case 4: fin = max - 1;
frente = siguiente(fin,max);
break;
case 5: break;
default: System.out.println("Opcion Equivocada");
break;
}
} while(opcion!=5);
}
public static int siguiente(int ptr, int max)
{
return (ptr+1) % max; // % significa igual a modulo
}
// Método para INSERTAR UN ELEMENTO
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 elimina(int []p, int max)
{
if(frente==siguiente(fin,max))
System.out.println(" !!! COLA VACIA!!!");
else{
System.out.println("Eliminando el elemento <<"+frente+">> = "+p[frente]);
frente=siguiente(frente,max);
}
}
// Método para PRESENTAR LOS ELEMENTOS DE UNA COLA CIRCULAR
public static void presentar(int []p, int m)
{
for (int i=frente; i!=siguiente(fin,m);i++)
System.out.println("Cola["+i+"] = "+p[i]);
}
}
No hay comentarios.:
Publicar un comentario