martes, 29 de abril de 2014

Cola circular

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;
   
    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.

No hay comentarios.:

Publicar un comentario