viernes, 29 de mayo de 2015

COLAS EN JAVA

Creado por: Bahamonde Juan José, Cortez María Paz, Intriago Luis José.


Introducción

La cola es una estructura de datos en la que se almacenan elementos, de tal forma que el primero en llegar es el primero en salir, este tipo de acceso a los elementos se le conoce como FIFO (First in First out). Para ello las inserciones a la lista deben ser al final, y las extracciones por el frente.

Operaciones básicas en Colas simples

  • Insertar: Almacena al final de la cola el elemento que se recibe como parámetro.
  • Extraer: Saca de la cola el elemento que se encuentra al final y retorna la información de ese nodo.
  • Llena: Regresa un valor booleano, que indica si la cola esta llena.
  • Vacía:Regresa un valor booleano, que indica si la cola esta vacía.

Creación de Nodos en la lista tipo Cola

Extraer la información de un nodo






De esta manera, como los datos siempre se agregan al final, se extrae la información del primero que haya sido ingresado y esté, por consiguiente, al inicio, cumpliendo así con la arquitectura FIFO.

Ejemplo Práctico

CLASE COLA
    package colas;

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

   public  void insertar (int datos)
    {
        Nodo nuevo = new Nodo (datos);
        
        nuevo.setDatos(datos); 
        nuevo.setSiguiente(null);
        if (vacia ()) {
            raiz = nuevo;
            fondo = nuevo;
        } else {
            fondo.setSiguiente(nuevo);
            fondo = nuevo;
        }
    }

     public int eliminar ()
    {
        if (!vacia ())
        {
            int datos = raiz.getDatos();
            if (raiz == fondo){
                raiz = null;
                fondo = null;
            } else {
                raiz = raiz.getSiguiente();
            }
            return datos;
        } else
            return Integer.MAX_VALUE;
    }
     
     
    public void leercola(){
        Nodo aux=raiz;
        System.out.println(aux.getDatos());
       
    }

    public void imprimir() {
        Nodo aux=raiz;
        System.out.println("*************************************");
        System.out.println("Todos los elementos de la cola: ");
        while (aux!=null) {
            System.out.print(aux.getDatos()+" ");
            aux=aux.getSiguiente();
        }
        System.out.println();
    }
}



package colas;

/**
 *
* @author BAHAMONDE,INTRIAGO,CORTEZ
 */
public class Nodo {
     int datos;
     Nodo siguiente;

    public Nodo(int datos) {
        this.datos = datos;
        this.siguiente=null;
    }

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

    public int getDatos() {
        return datos;
    }

    public void setDatos(int datos) {
        this.datos = datos;
    }

    public Nodo getSiguiente() {
        return siguiente;
    }

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



package colas;
import java.util.Scanner;
public class Colas {
 public static void main(String[] args) {
     Scanner lee=new Scanner(System.in);
         Cola cola=new Cola();
         int num, entrada;
        System.out.println("Cuantos numeros desea ingresar: ");
        entrada=lee.nextInt();
        System.out.println("*************************************");
         System.out.println("Ingrese los elementos de la cola: ");
        for(int i =0;i < entrada;i++){ 
            num=lee.nextInt();
            cola.insertar(num);
        }
           System.out.println("*************************************");
        System.out.println("Leer la cola de la lista: ");
        cola.leercola();  
        cola.imprimir();
           System.out.println("*************************************");
        System.out.println("Eliminar un elemento de la cola:"+cola.eliminar());    
           System.out.println("*************************************");
        System.out.println("Leer la cola de la lista: ");
        cola.leercola();
         cola.imprimir();
}



CAPTURAS



Grafos: http://colasenjava.blogspot.com/2015/06/grafos.html (María Paz Cortez)