martes, 17 de noviembre de 2015

Cola en JAVA

Es una estructura de datos que se caracteriza por ser una secuencia de elementos en la que la operación de inserción push se realiza por un extremo y la operación de extracción pop por el otro.
También se le llama estructura FIFO (First In First Out), debido a que el primer elemento en entrar será el primero en salir.




Es común la utilización de colas en sistemas informáticos, de transporte y operaciones de investigación ya que ahí los objetos, personas o eventos son tomados como datos que se almacenan y se guardan mediante colas para un posterior procedimiento.

Las colas son implementadas en lenguajes orientados a objetos por medio de clases, en forma de listas enlazadas.

Operaciones:

  • Crear: se crea la cola vacía.
  • Encolar (añadir-insertar): se añade un elemento a la cola (al final de la cola).
  • Desencolar(eliminar): se elimina el elemento frontal de la cola (el primer elemento que entró).
  • Frente(consultar-front): se devuelve el elemento frontal de la cola (el primer elemento que entró).
Ejemplo:

MAIN



package cola;

/**
 *
 * @author michellemorillo
 */
public class Cola {
    public static void main(String[] args) {
        // TODO code application logic here
        Cola1 cola1=new Cola1();
        cola1.insertar(5);
        cola1.insertar(10);
        cola1.insertar(50);
        cola1.imprimir();
        System.out.println("Extraemos uno de la cola:"+cola1.extraer());
        cola1.imprimir(); 
    }
    
}

NODO

package cola;

public class Nodo {
    int info;
    Nodo sig;
    
}
COLA1


package cola;

/**
 *
 * @author michellemorillo
 */
public class Cola1 {
     private Nodo raiz,fondo;
    
    Cola1() {
        raiz=null;
        fondo=null;
    }
    
    boolean vacia (){
        if (raiz == null)
            return true;
        else
            return false;
    }

    void insertar (int info)
    {
        Nodo nuevo;
        nuevo = new Nodo ();
        nuevo.info = info;
        nuevo.sig = null;
        if (vacia ()) {
            raiz = nuevo;
            fondo = nuevo;
        } else {
            fondo.sig = nuevo;
            fondo = nuevo;
        }
    }

    int extraer ()
    {
        if (!vacia ())
        {
            int informacion = raiz.info;
            if (raiz == fondo){
                raiz = null;
                fondo = null;
            } else {
                raiz = raiz.sig;
            }
            return informacion;
        } else
            return Integer.MAX_VALUE;
    }

    public void imprimir() {
        Nodo reco=raiz;
        System.out.println("Listado de todos los elementos de la cola.");
        while (reco!=null) {
            System.out.print(reco.info+"-");
            reco=reco.sig;
        }
        System.out.println();
    }
}

EJECUCIÓN DEL PROGRAMA










No hay comentarios:

Publicar un comentario