miércoles, 5 de octubre de 2011

COLAS DINAMICAS EN JAVA

HOLA AMIGOS AQUI DE NUEVO CON ESTE OTRO APORTE QUE SON LAS COLAS DINAMICAS EN JAVA QUE SON PARECIDAS A LA DE PILAS SOLO QUE EN ESTA SE VA ELIMINANDO DE ABAJO HACIA ARRIVA Y COMO ES DINAMICA SE PUEDEN CREAR CIENTOS DE DATOS SIN TOPE EL UNICO TOPE ES LA CAPACIDAD DE MEMORIA DE LA COMPU..... BUENO ES IGUAL SON 3 ARCHIVOS QUE SON LOS SIGUIENTES:

EL ARCHIVO NODOLISTACOLA:

///////////////GENERA NODOS PARA LISTAS DOBLES////////////////////

class NodoListaCola{
    ////3 campos
    Object info;
    NodoListaCola Izq;/////////////asi se declara para apuntar a un dato igual a ellos
    NodoListaCola Der;
   
    /////////////primer constructor/*/////////////////
    public NodoListaCola(Object Dato){
        this.info = Dato;
        this.Izq = null;
        this.Der = null;
    }
   
    /////////////////segundo constructor///////////////
    public NodoListaCola(NodoListaCola Izq, Object Dato){
        this.Izq = Izq;
        this.info = Dato;
        this.Der = null;
    }
}

EL ARCHIVO LISTACOLA:

///////////////////////////LISTA QUE MANIPULA A LOS PUNTEROSY METODOS /////////////

class ListaCola{
    //////PUNTEROS
    public NodoListaCola Primero,Ultimo,Nuevo,Aux,Pos,Ant;
   
    //////constructor
    public ListaCola(){
        Primero = Ultimo = Nuevo = Aux = Pos = Ant = null;
    }
    ////////////////////////INSERTAR COLA//////////
    public void insertarCola(Object dato){
        if(Primero==null){//////////1 caso(lista vacia)
        Primero = new NodoListaCola(dato);
        Ultimo = Primero;
        }
        else{
            Nuevo = new NodoListaCola(Ultimo, dato);
            Ultimo.Der = Nuevo;
            Ultimo = Nuevo;
        }despliegaListaCola();
    }
   
    ///////////////ELIMINAR COLA//////////////
    public void eliminarCola(){
        if(Primero==null){
            System.out.println ("lista vacia");
        }
        else{
        ///hacer cuatro casos
                if(Primero==Ultimo){//// 1 caso
                    Primero=Ultimo=null;
                }
                else {//2caso
                    Primero=Primero.Der;
                    Primero.Izq=null;
                }
           
        }despliegaListaCola();
    }
   
    ////////////////////DESPLEGAR LISTA DOBLE////////////////
    public  void despliegaListaCola(){
        Aux = Primero;
        System.out.println ("#########   LISTA COMPLETA   ###########");
        while (Aux != null) {
            System.out.println (Aux.info);
            Aux = Aux.Der;
        }
        System.out.println ("########################################");
    }



}

Y POR ULTIMO EL APPLISTACOLA:

import java.util.Scanner;
class AppListaCola{
    public static void main(String args[]){
        ListaCola lista = new ListaCola();
        Integer DatoB,DatoI;
        int opcion;
       
        //Inicializacion del teclado
        Scanner Teclado = new Scanner(System.in);
        do{
            System.out.println ("1) INSERTAR COLA");
            System.out.println ("2) ELIMINAR COLA");
            System.out.println ("3) DESPLEGAR LISTA");
            System.out.println ("4) SALIR");
            opcion = Teclado.nextInt();
            switch (opcion) {
                case 1: System.out.println ("Que dato quieres insertar en la Lista:  ");
                        DatoI = new Integer(Teclado.nextInt());
                        lista.insertarCola(DatoI);
                        break;
                case 2: lista.eliminarCola();
                        break;
                case 3: lista.despliegaListaCola();
                        break;
                case 4: System.out.println ("BYE....");
                        break;
                                   
                default :System.out.println ("\topcion no valida intenta de nuevo\n");
            }
        }while (opcion != 4);
    }
}

BUENO AMIGOS AQUI ESTAN LOS ARCHIVOS ESPERO Y LES GUSTEN COMENTEN...


1 comentario:

  1. Me pregunto y como se hace una consulta teniendo esta estructura y suponiendo que la cola tenga datos

    ResponderEliminar