miércoles, 17 de junio de 2015

COLAS Las colas son estructuras de datos lineales, son muy parecidas a las pilas y a las listas , quienes les dan propiedades a esta estructura de datos. En las colas se accede por uno de los dos extremos de la lista y los elementos se insertan por el extremo final, y se suprimen por el otro extremo, llamado frente. Estas estructuras se utilizan para almacenar elementos en su orden de aparición. 

TIPOS DE COLAS:
- Cola Simple: Estructura donde los elementos salen en el mismo orden en el que llegan.
- Cola Doble: Estructura en la que los elementos se pueden añadir o quitar por cualquier extremo de la cola.
- Cola Circular: Representación de una cola simple en un arreglo.

- Cola de prioridades: Estructura en la cual los elementos se insertan en cualquier posición de la cola y se mueven solo por el frente.




Para poder entender las colas veremos sus métodos y clases para poder aplicar esta estructura de datos


MÉTODOS Y CLASES:

1) NODO DE UNA COLA:
 class Nodo {
        private int informacion;
        Nodo siguiente;
    }
2) ClASE COLA :
  
private Nodo inicio;
private Nodo fin;
    
    Cola() {
        inicio=null;
        fin=null;
    }
3) MÉTODO DE VERIFICAR SI LA COLA ESTA LLENA:
  
public boolean vacia (){
        if (inicio == null)
            return true;
        else
            return false;
    }

4) MÉTODO INSERTAR ELEMENTO EN COLA:
 public void insertarElemento (int informacion)
    {
        Nodo nuevo;
        nuevo = new Nodo ();
        nuevo.informacion = informacion;
        nuevo.siguiente = null;
        if (vacia ()) {
            inicio = nuevo;
            fin = nuevo;
        } else {
            fin.sig = nuevo;
            fin = nuevo;
        }
    }
5) MÉTODO PARA EXTRAER UN ELEMENTO :
 
  
      public int extraer ()
    {
        if (!vacia ())
        {
            int informacion = inicio.informacion;
            if (inicio == fin){
                inicio = null;
                fin = null;
            } else {
                inicio = inicio.siguiente;
            }
            return informacion;
        } else
            return Integer.MAX_VALUE;
    }
6) MÉTODO PARA IMPRIMIR ELEMENTOS DE UNA COLA :
 
  public void imprimir() {
        Nodo aux=inicio;
        System.out.println("Los elementos de la cola son:");
        while (aux!=null) {
            System.out.print(aux.informacion+"-");
            aux=aux.siguiente;
        }
        System.out.println();
    }
EJERCICIO PRACTICO APLICANDO LOS MÉTODOS EXPLICADOS CLASE COLA:
 
public class Cola {

    private Nodo inicio;
    private Nodo fin;

    public Cola() {
        inicio = null;
        fin = null;
    }

    public boolean vacia() {
        if (inicio == null) {
            return true;
        } else {
            return false;
        }
    }

    public void insertarElemento(int informacion) {
        Nodo nuevo;
        nuevo = new Nodo();
        nuevo.informacion = informacion;
        nuevo.siguiente = null;
        if (vacia()) {
            inicio = nuevo;
            fin = nuevo;
        } else {
            fin.siguiente = nuevo;
            fin = nuevo;
        }
    }

    public int extraer() {
        if (!vacia()) {
            int informacion = inicio.informacion;
            if (inicio == fin) {
                inicio = null;
                fin = null;
            } else {
                inicio = inicio.siguiente;
            }
            return informacion;
        } else {
            return Integer.MAX_VALUE;
        }
    }

    public void imprimir() {
        Nodo aux = inicio;
        System.out.println("Los elementos de la cola son:");
        while (aux != null) {
            System.out.print("/"+aux.informacion + "/");
            aux = aux.siguiente;
        }
        System.out.println();
    }

}

CLASE NODO :
 
public class Nodo {
     int informacion;
     Nodo siguiente;

    public Nodo() {
    }

    public Nodo(int informacion, Nodo siguiente) {
        this.informacion = informacion;
        this.siguiente = siguiente;
    }

    public int getInformacion() {
        return informacion;
    }

    public void setInformacion(int informacion) {
        this.informacion = informacion;
    }

    public Nodo getSiguiente() {
        return siguiente;
    }

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

    @Override
    public String toString() {
        return "Nodo{" + "informacion=" + informacion + ", siguiente=" + siguiente + '}';
    }
     
}

CLASE PRINCIPAL
 

public class Principal {

   
      public static void main(String[] ar) {
        Cola cola1=new Cola();
        cola1.insertarElemento(14);
        cola1.insertarElemento(12);
        cola1.insertarElemento(5);
        cola1.insertarElemento(45);
        cola1.insertarElemento(3);
        cola1.insertarElemento(10);
        cola1.imprimir();
        System.out.println("Extraemos uno de la cola:"+cola1.extraer());
        cola1.imprimir();        
    }
}

No hay comentarios:

Publicar un comentario