cola dinamica
DESCRIPTION
Ejemplo Cola Circular DinamicaTRANSCRIPT
Cola dinamica
// Cola.java
// Interfaz general de Colas:interface InterfazCola{// El constructor devuelve una Cola vacíapublic boolean EsVacia();// Devuelve true si es vacíapublic void Inserta(Elemento x);// Incluye x en la Cola de "this"public Elemento Cabeza() throws IllegalArgumentException;// Devuelve el objeto en cabeza de la Cola "this"public void Resto() throws IllegalArgumentException;// Obtiene la cola de la Cola actual (extrae el elemento en cabeza)public Object clone();// Saca un duplicado de la Cola "this". Devuelve un objeto// del tipo Cola concreto que se este empleando.public String toString();// Pasa la Cola a String.}
class Cola implements InterfazCola {
// Clase Nodo para la implementación de Colas dinámicasclass Nodo {Elemento Info; // Información almacenada en el nodoNodo Siguiente; // Nodo siguientepublic Nodo(Elemento e, Nodo n){Info=e;Siguiente=n;}}
private Nodo NodoCabeza; // Nodo en cabeza de la Colaprivate Nodo NodoFinal; // Nodo en Cola
public Cola(){// Devuelve una Cola vacíaNodoCabeza=null;NodoFinal=null;
}public boolean EsVacia(){return (NodoCabeza == null);}public void Inserta(Elemento x) {Nodo Nuevo;Nuevo=new Nodo(x, null);if (NodoCabeza==null) NodoCabeza=Nuevo;else NodoFinal.Siguiente=Nuevo;NodoFinal=Nuevo;}public Elemento Cabeza()throws IllegalArgumentException {if (NodoCabeza == null) throw new IllegalArgumentException();else return NodoCabeza.Info;}public void Resto() throws IllegalArgumentException{if (NodoCabeza == null) throw new IllegalArgumentException();else NodoCabeza=NodoCabeza.Siguiente;}public Object clone(){Cola c1;Nodo actual, aux, previo;
aux=null;c1=new Cola();if (NodoCabeza != null){actual=NodoCabeza;previo=null;while (actual != null){aux=new Nodo(actual.Info, null);if (previo != null) previo.Siguiente=aux;else c1.NodoCabeza=aux;previo=aux;actual=actual.Siguiente;}c1.NodoFinal=aux;}return (Object)c1;}public String toString(){String s;
Nodo actual;s=new String(" ");actual=NodoCabeza;while (actual != null){s=s.concat(actual.Info.toString());actual=actual.Siguiente;// if (actual != null) s=s.concat(" ");}s=s.concat(" ");return s;}}
Ejecucion del Programa