cola dinamica

4
Cola dinamica // Cola.java // Interfaz general de Colas: interface InterfazCola{ // El constructor devuelve una Cola vacía public boolean EsVacia(); // Devuelve true si es vacía public 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ámicas class Nodo { Elemento Info; // Información almacenada en el nodo Nodo Siguiente; // Nodo siguiente public Nodo(Elemento e, Nodo n){ Info=e; Siguiente=n; } } private Nodo NodoCabeza; // Nodo en cabeza de la Cola private Nodo NodoFinal; // Nodo en Cola

Upload: ionijohn

Post on 11-Apr-2015

3.678 views

Category:

Documents


1 download

DESCRIPTION

Ejemplo Cola Circular Dinamica

TRANSCRIPT

Page 1: Cola dinamica

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;

Page 2: Cola dinamica

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

Page 3: Cola dinamica

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

Page 4: Cola dinamica