Ir al contenido principal

Lista Ordenada en Java

  /**
   Menu Lista Ordenada
 
  */ 
   
     class MenuListaOrd
   {
       public static void main(String x[])
      { 
         int dato;     
         ListaOrd Ord; 
         Ord = new ListaOrd();
       
         int opc;
         
         do
         {
            System.out.print("\n\n º-º-º Lista Ordenada º-º-º");
            System.out.print("\nº-º-º-º-º-º-º-º-º-º-º-º-º-º-º");     
            System.out.print("\nº     1. Insertar  nodo     º");  
            System.out.print("\nº     2. Eliminar  nodo     º");
            System.out.print("\nº     3. Eliminar lista     º");
            System.out.print("\nº     4. Mostrar  lista     º");
            System.out.print("\nº     5. Salir              º");        
            System.out.print("\nº-º-º-º-º-º-º-º-º-º-º-º-º-º-º");   
            System.out.print("\n Selecciona una Opcion-->");
            opc=Teclado.readInt();
                        
            switch(opc) 
            {
               case 1: System.out.print("\n Ingrese nuevo-->");
                  dato = Teclado.readInt();         
                  Ord.insert_Lista_Ord(dato);
                  break;
               
               case 2: System.out.print("\n Dato a Eliminar-->");
                  dato = Teclado.readInt();     
                  Ord.elimina_Nodo(dato);
                  break;
             
               case 3: Ord.elimina_Toda_Lista();
                  break;
             
               case 4: System.out.print("\nº-º-º Elementos de la lista º-º-º");
                  Ord.mostrar_Lista_Ordenada();
                  break;
           
               default:System.out.print("\nº-º-º G O O D  B Y E º-º-º");
            }   
         }
         while(opc<=4);           
      }
   }

/*Creacion de una lista simple ordenada con apuntadores
  en el primer y ultimo nodo de la lista */
 
    class ListaOrd
   {     
      Nodo primero,ultimo; 
      
   //--Constructor 
   //---------------------------------------------------------------      
       public ListaOrd()
      {
         primero = null;     
      }       
  
   // Metodo para insertar un elemento
   //---------------------------------------------------------------       
       public void insert_Lista_Ord(int elem)
      {
         Nodo nuevo;
         nuevo=new Nodo(elem);
     
         if(primero == null)
         {
            primero = nuevo;
         }   
        
         else if (elem < primero.dato)   
         {
            nuevo.sig = primero;
            primero = nuevo;
            ultimo = nuevo;
         }
        
         else //busqueda del nodo anterior a partir del que se debe insertar
         {
            Nodo ant,act;
            ant = act = primero;    
        
            while((act.sig != null)&&(elem > act.dato))
            {
               ant = act;
               act = act.sig;
            }
        
            if(elem > act.dato)//se inserta despues del ultimo nodo
            { 
               ant = act;
               nuevo.sig = ant.sig;
               ant.sig = nuevo;
            }
            else if(elem == act.dato)        
            {
               System.out.println("\n¡¡¡ Elemento ya existe !!!");
            }
           
            else
            {
               nuevo.sig = act;
               ant.sig = nuevo;
            }   
         }
      } 
  
   //-- Metodo para eliminar un nodo
   //---------------------------------------------------------------         
       public void elimina_Nodo(int datoE)
      {
         Nodo ant, act;
         act = primero;   
         ant = null;
        
         if(primero != null)
         {     
                    
            while((act != null)&&(datoE != act.dato))
            {     
               ant = act;
               act = act.sig;
            }   
           
                if((act == null)||(datoE != act.dato)) 
            {                     
               System.out.print("\n¡¡¡ El Dato no existe !!!");
            }   
            else
            {     
               if (act == primero)
               {
                  primero = primero.sig;
                  act = null;
               }
              
               else if (act == ultimo)
               {
                  ultimo = ultimo.sig;
                  act = null;
               }                
                  
               else
               {
                  if(act != null)
                  {   
                     ant.sig = act.sig;
                     act.sig = null;
                  }   
               }   
            }      
         }
         else
         {
            System.out.print("\n¡¡¡ Lista Vacia !!!");
         }                           
      }       
  
   //-- Eliminar un toda la lista
   //---------------------------------------------------------------             
       public void elimina_Toda_Lista()
      {  
         Nodo elim,sig;
         elim=primero;
     
         while(primero!=null)
         {
            primero=primero.sig;
            elim.sig=null;
            elim=primero;
         }
      }   
   //Mostrar todos los Elementos     
   //---------------------------------------------------------------         
       public void mostrar_Lista_Ordenada()
      {
         Nodo mostrar;
         int nodo;
         mostrar = primero;
     
         if(mostrar != null) 
         {
            for(nodo = 0; mostrar != null; mostrar = mostrar.sig)
            {
               System.out.print("\n Elemento--> "+mostrar.dato);
               nodo = nodo ++;
            }
         }
         else
         {
            System.out.print("\n¡¡¡ Lista vacia !!!");
         }
      }
   //------------------------------------------------------------------------
   }
 

         public class Nodo             
      {       
            Nodo sig;
            int dato;
           
          //Constructor Nodo 
             public Nodo(int x)
             {
                dato=x;
                sig=null;
             }        
        }

Comentarios

Entradas más populares de este blog

Cuadrado Perfecto en Java

/**   Programa que dice si un numero ingresado es Cuadrado Perfecto   Autor: **/     class CuadPerF    {        public static void main(String arr[])       {          int num;          double sum,r;                 System.out.print("\n Ingrese Numero:");          num = Teclado.readInt();                 sum = Math.sqrt(num);          r = sum;                           if(r%2 ==0)          {             ...

Lista Circular en Java

/* Menu Mlista de la clase ListaCir*/ class MListaCir {   public static void main(String x[])   {         ListaCir lis;      int dato;          lis= new ListaCir();                          int opc;                         do             {                 System.out.print("\n * * * * MENU * * * * * *");                   System.out.print("\n *  1.Insertar  nodo    *");                   System.out.print("\n *  2.Eliminar  nodo...

Programa que simula el juego del 21 para 3 jugadores donde diga quien es el ganador y el total de su suma sin pasarse del 21 en Java

/** Programa que simula el juego del 21 para 3 jugadores donde diga quien es el ganador y el total de su suma sin pasarse del 21 */ class Juego21 {     public static void main(String args[])     {         int i,jug,J1=0,J2=0,J3=0;         int Li=1,Ls=13,posible,A;         int La=1,Lb=4,B;         boolean E1,E2,E3;         double aleat;         for(jug=1;jug<4;jug++)//inicio for 3 jugadores         {             System.out.println("««JUGADOR NUMERO "+jug+"»»");             for(i=1;i<=3;i++)//inicio for 3 cartas             {                 /*********Nume...