Manejo de listas Java




     style="display:inline-block;width:728px;height:90px"
     data-ad-client="ca-pub-5126364088863607"
     data-ad-slot="9520827110">


/* Esta clase Principal instancia la clase Lista y entonces invoca sus metodos   //
 * mostrando el resultado de cada acci�n a fin de comprobar el funcionamiento    //
 */                                                                             
public class Principal {                                                        
   public static void main(String args[]) {                                      
      Lista miLista = new Lista();                              // crea una instancia de la clase Lista
      Nodo nuevo;                                                       // enlace a objeto de tipo Nodo que se usar�
                                                                                 // para apuntar a un nuevo nodo al crearlo
      int  info=0, inf;                                                   // variables para contener la informaci�n que
                                                                                 // se colocar� en un nodo
                                                                             
      System.out.println("agrega 5 nodos y muestra la lista cada vez\n");        // PRIMERA ACCION - agregar nodos a la Lista
      for(int i=0;i<5;i++) {                                                                //
         info = 10 + (int)(Math.random()*90);                                    // genera informaci�n aleatoria
         System.out.print("agrega " + info + ", entonces  ");             //
         nuevo = new Nodo(info);                                                       //
         miLista.agregar(nuevo);                                                         //
         miLista.mostrar();                                                                   //
      }                                                                                                  //
      System.out.println();                                                                  //
      inf = info;                                                                                  // guarda ultima info para usarla mas abajo
           
                                                                                             //
      System.out.print("\nDetermina si existe un nodo de contenido " + inf);     // SEGUNDA ACCION - buscar un nodo con esa inf
      if(miLista.existeNodoCon(info)) System.out.println(" Si existe");          //
      else                            System.out.println(" No  existe");                         //
                                                                                                                        //
      info = 10 + (int)(Math.random()*90);                                                     // SEGUNDA ACCION- buscar uno con info aleatoria
      System.out.print("\nDetermina si existe un nodo de contenido " + info);    //
      if(miLista.existeNodoCon(info)) System.out.println(" Si existe");               //
      else                            System.out.println(" No existe");                               //
                                                                                                                             //
      System.out.print("\nElimina primer nodo, entonces  ");                     // TERCERA ACCION - eliminar primer nodo
      miLista.eliminaPrimero();                                                                   //
      miLista.mostrar();                                                                                //
                                                                                                                   //
      System.out.print("\nElimina ultimo nodo, entonces  ");                     // CUARTA ACCION - eliminar ultimo nodo
      miLista.eliminaUltimo();                                                                     //
      miLista.mostrar();                                                                              //
                                                                                                                  //
      System.out.print("\nMuestra al reves, entonces  ");                        // QUINTA ACCION - mostrar lista al reves
      miLista.muestraAlreves();                                                  //
                                                                                                 //
   }                                                                                           //
}                                                                                              //

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

public class Nodo {
   protected int  info;
   protected Nodo nexo;
 
   Nodo() {}
   Nodo(int info) {
      this.info = info;
      this.nexo = null;
   }
}


///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



/**
   Robert Calbul Yevilao
   **/
public class Lista extends Nodo {
   Nodo Inicio, Ultimo;
  
   Lista() {
      Inicio = null;
      Ultimo  = null;
   }
  
   public void agregar(Nodo nuevo) {
      if(Ultimo==null) Inicio = nuevo;
      else        Ultimo.nexo = nuevo;
      Ultimo = nuevo;
   }
   
   public void mostrar() {
      System.out.print("Lista");
      Nodo p=Inicio;
      while(p!=null) {
         System.out.print(" - " + p.info);
         p = p.nexo;
      }
      System.out.println();
   }
  
   //**** METODOS QUE FALTAN POR CODIFICAR ****//
  
   public boolean existeNodoCon(int info) {
       boolean verificar = false;
       Nodo p = Inicio;
       while(p!=null){
         if(p.info == info) verificar = true;
         p = p.nexo;
        }
      return verificar; //lo puse asi solo para compilar      
   }
  
   public void eliminaPrimero() {
       Nodo p = Inicio;
       if(p!=null){
            p = p.nexo;
            Inicio = p;      
        }
   }
  
   public void eliminaUltimo() {
     Nodo p = Inicio;
     while(p!=null){
         if(p.nexo == Ultimo){
            p.nexo = null;
            Ultimo = p;
        }  
        p = p.nexo;
     }
 
   }
  
   //este metodo utuliza a otro, el cual debe ser recursivo
   public void muestraAlreves() {
      Alveres(Inicio);     
   }
  
   //este es el metodor recursivo que debes escribir
   private void Alveres(Nodo p) {  
       if (p!=null) {
           Alveres(p.nexo);
           System.out.print(p.info+"-");
        }
    }  

}

Entradas más populares de este blog

Convertir decimal a binario, octal y hexadecima

Crear servicio web en Visual C# (WebService)