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.
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
CLASE COLApublic 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 MAINpublic 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; } }
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); } }
muy buena información
ResponderBorrar