COLAS EN JAVA

Una cola es simplemente un lugar para almacenar cosas, donde esas cosas se insertan una detrás de otra y para extraer siempre se lo hace por adelante de la cola donde se encuentra el primer elemento. Una cola funciona como una fila o cola de personas, que esperan su turno para ser atendidas, la primera persona atendida es siempre la primera de la fila y cuando llega una persona y queremos incorporarla a cola o adicionarla debemos hacerlo por detrás de la ultima persona en la cola.

Las operaciones que se utilizan son los siguinetes:
   - Insertar un objeto en la pila (push).
   - Recuperar un objeto de la pila (pop).
   - Obtener el objeto de la cima (top) de la pila, sin extraerlo.
   - Averiguar si hay algún objeto almacenado en la pila.
   - Devolver el número de objetos almacenados en la pila. 
 COLAS PRIORIDAD 
Una cola de prioridades es un tipo de dato abstracto similar a una cola en la que los elementos tienen adicional mente, una prioridad asignada. En una cola de prioridades un elemento con mayor prioridad será desencolado antes que un elemento de menor prioridad. Si dos elementos tienen la misma prioridad, se desencolarán siguiendo el orden de cola.



Mapa Conceptual de lo que es un Cola en Java

 Programa Colas

    public class Nodo {
   
    private int valor;
    private Nodo siguiente;
   
    public void Nodo(){
        this.valor = 0;
        this.siguiente = null;
    }
    
    // Métodos get y set para los atributos.
    
    public int getValor() {
        return valor;
    }

    public void setValor(int valor) {
        this.valor = valor;
    }

    public Nodo getSiguiente() {
        return siguiente;
    }

    public void setSiguiente(Nodo siguiente) {
        this.siguiente = siguiente;
    }   
    
}


       
 
CLASE COLA
  
 public class ColaArray {
 private static final int MAXTAM = 3;
 private int frente;
 private int ultimo;
 private int []cola;
 public ColaArray(){
  frente = 0;
  ultimo = -1;
  cola = new int [MAXTAM];
 }
 public void insertarQ(int elemento)throws Exception{
  if (!ColaLlena())
   cola[++ultimo]= elemento;
  else
   throw new Exception ("Error en la cola: Cola LLena");
  
 }
 
 public int eliminarQ() throws Exception{
  if (!ColaVacia())
   return cola[frente++];
  else
   throw new Exception ("Cola vacia");
 }
 
 public void BorrarQ(){
  frente = 0;
  ultimo = -1;
 }
 
 public int frenteQ()throws Exception{
  if (!ColaVacia())
   return cola[frente];
  else
   throw new Exception ("Cola vacia");
 }
 
 public boolean ColaVacia(){
  return frente > ultimo;
 }
 
 public boolean ColaLlena(){
  return ultimo == MAXTAM - 1;
 }
 
 
}


       
 
CLASE MAIN
 
       
public class EjecutaCola {
static int n=0,elemento=0;
 
 public static void main(String[] args)throws Exception {
  ColaArray k=new ColaArray();
  BufferedReader b=new BufferedReader
    (new InputStreamReader(System.in));
 
  
  do{
   System.out.println("---- ELIJA LA OPERACION A REALIZAR ----");
   System.out.println("----------------- MENU -----------------");
   System.out.println("1. Ingresar elementos");
   System.out.println("2. Eliminar elementos");// CONTROLAR Q SI ELIMINA SE PERCATE DE Q NO ESTE VACIA 
   System.out.println("3. Ver si la cola esta vacia");
   System.out.println("4. Ver el frente de la cola");// SI NO HAY ELEMENTOS QUE DESPLIGUE UN MENSAJE Q NO HAY ELEMENTOS
   System.out.println("5. Borrar");
   System.out.println("6. Ver si la cola esta  llena");
   System.out.println("7. SALIR");
   n=Integer.parseInt(b.readLine());
   if(n==1){
    if(k.ColaLlena()){
     System.out.println("COLLA LLENA NO SE PUEDE INGRESAR ELEMENTOS");
    }else
    System.err.print("// INGRESE LOS ELEMNTOS //= ");
    elemento=Integer.parseInt(b.readLine());
    k.insertarQ(elemento);
   }
   if(n==2){
    if(k.ColaVacia()){
     System.err.println("LA COLAN ESTA VACIA NO PUEDE ELIMINA ELEMENTOS");
    }else
    System.out.println(k.eliminarQ());
   }
   if(n==3){
    if(k.ColaVacia()){
     System.out.println("LA COLA ESTA VACIA");
    }else
     System.out.println("LA COLA NO ESTA VACIA ");
   }
   if(n==4){
    if(k.ColaVacia()){
     System.err.println("LA COLAN ESTA VACIA NO hay elemento en el frente");
    }else
    System.out.println("EL FRENTE DE LA COLA ES= "+k.frenteQ());
    
   }
   if(n==5){
    k.BorrarQ();
    
   }
   if(n==6){
    k.ColaLlena();
    if(k.ColaLlena()){
     System.out.println("LA COLA ESTA LLENA");
    }else
     System.out.println("LA COLA NO ESTA LLENA");
   }
   if(n==7){
    System.exit(0);
   }
   
   
   
  }while(n!=7);
  
  
  
 }

}




       
 
 

1 comentario: