miércoles, 5 de octubre de 2011

PILAS DINAMICAS EN JAVA

AQUI LES TRAEGO UN NUEVO APORTE QUE SON LAS PILAS DINAMICAS EN JAVA A DIFERENCIA DE LAS ESTATICAS ESTAS NO TIENEN UN TOPE DE LLENADO POR LO CUAL PUEDEN CREAR CIENTOS DE DATOS E IGUAL DE ELIMINARLOS... BUENO ASI LES DEBEN DE QUEDAR LOS ARCHIVOS:

EL ARCHIVO NODOLISTAPILA:

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

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

}


EL OTRO ARCHIVO ES EL LISTAPILA:


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

class ListaPila{
    //////PUNTEROS
    public NodoListaPila Primero,Ultimo,Nuevo,Aux,Pos,Ant;
  
    //////constructor
    public ListaPila(){
        Primero = Ultimo = Nuevo = Aux = Pos = Ant = null;
    }
    //////////////////PUSH////////////////
    public void insertarPush(Object dato){
        if(Primero==null){//////////1 caso(lista vacia)
        Primero = new NodoListaPila(dato);
        Ultimo = Primero;
        }
        else{
            Nuevo = new NodoListaPila(Ultimo, dato);
            Ultimo.Der = Nuevo;
            Ultimo = Nuevo;
        }despliegaListaPila();
    }

    ///////////////POP//////////////
    public void eliminarPop(){
        if(Primero==null){
            System.out.println ("lista vacia");
        }
        else{
        ///hacer cuatro casos
                if(Primero==Ultimo){//// 1 caso
                    Primero=Ultimo=null;
                }
                else {//2caso
                    Ultimo=Ultimo.Izq;
                    Ultimo.Der=null;
                }
          
        }despliegaListaPila();
    }
  
    ////////////////////DESPLEGAR LISTA DOBLE////////////////
    public  void despliegaListaPila(){
        Aux = Primero;
        System.out.println ("#########   LISTA COMPLETA   ###########");
        while (Aux != null) {
            System.out.println (Aux.info);
            Aux = Aux.Der;
        }
        System.out.println ("########################################");
    }
}


Y EL ULTIMO ARCHIVO APPLISTAPILA:

import java.util.Scanner;
class AppListaPila{
    public static void main(String args[]){
        ListaPila lista = new ListaPila();
        Integer DatoB,DatoI;
        int opcion;
       
        //Inicializacion del teclado
        Scanner Teclado = new Scanner(System.in);
        do{
            System.out.println ("1) PUSH");
            System.out.println ("2) POP");
            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.insertarPush(DatoI);
                        break;
                case 2: lista.eliminarPop();
                        break;
                case 3: lista.despliegaListaPila();
                        break;
                case 4: System.out.println ("BYE....");
                        break;
                                   
                default :System.out.println ("\topcion no valida intenta de nuevo\n");
            }
        }while (opcion != 4);
    }
}

BUENO ESO ES TODO AMIGOS ESPERO Y LES SIRVA DE MUCHO....COMENTEN..


2 comentarios: