Ir al contenido principal

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    *");
                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 Elemento-->");
                          dato = Teclado.readInt();         
                      lis.insertNodo(dato);
                      break;
                   
                  case 2: System.out.print("\n Ingrse dato a Eliminar-->");
                        dato=Teclado.readInt();     
                      lis.elimNodo(dato);
                      break;
                 
                  case 3: lis.elimLista();
                          System.out.print("\nº-º-º Lista eliminada º-º-º");
                   break;
                 
                  case 4: System.out.print("\nº-º-º Elementos de la lista º-º-º");
                             lis.mostrarLista();
                   break;
                   
                default:    System.out.print("\nº-º-º G O O D  B Y E º-º-º");
                           
            }
      }
            while(opc<=4);           
    }
}



/*Creacion de una lista simple enlazada circular  */
 
    class ListaCir
   {     
      Nodo primero,ultimo; 
      
       public ListaCir()
      {     
         primero = null;
            ultimo = null;
      }       
   //-------------------------------------------       
   // Metodo para insertar un elemento
       public void insertNodo(int elem)
      {
         Nodo nuevo, ant;
         nuevo = new Nodo(elem);
        
         if(primero == null) // cuando no hay ningun nodo
         {     
            primero = nuevo;
            ultimo = nuevo;
         }
           
         else if (nuevo.dato < primero.dato)    // al inicio
         {
            nuevo.sig = primero;       
            ultimo.sig = nuevo;
            primero = nuevo;
         }
         
         else //busqueda del nodo anterior a partir del que se debe insertar
         { 
            Nodo act = ant = primero;
          
            while((nuevo.dato > act.dato)&&(act != ultimo))
            {
               ant = act;
               act = act.sig;
            }
           
            if(nuevo.dato == act.dato)
            {
               System.out.println(" ¡¡¡ Elemento existe en la lista !!!");
            }
            else
            {             
               if(nuevo.dato > act.dato) //se inserta despues del ultimo nodo
               {   
                  nuevo.sig = ultimo.sig;
                  ultimo.sig = nuevo;
                  ultimo = nuevo;
               }
               else
               {
                  nuevo.sig = act;
                  ant.sig = nuevo;
               }
            }             
         }     
      }
        
   //-------------------------------------------   
   // Metodo para eliminar un nodo
       public void elimNodo(int datoE)
      {
         Nodo ant, act;
         ant = null; 
         act = primero;
       
         if(primero != null)
         {
            while((act != null)&&(act.dato != datoE))
            {            
               ant = act;
               act = act.sig;
            }   
        
            if((act == null)||(datoE != act.dato))
            {
               System.out.println("\n ¡¡¡ No existe !!!");       
            }   
            else
            {     
               
               if (act == primero)//caso 1: Elimina Primero
               {
                  primero = primero.sig;
                  ultimo.sig = primero;
                  act.sig = null;
               }
              
               else if (act == ultimo)//caso 2: elimina ultimo
               {
                  ant.sig = ultimo.sig;
                  ultimo = ant;
                  act.sig = null;
               }                       
               else  // caso 3: elimina en medio
               {
                  ant.sig = act.sig;
                  act.sig = null;
               }   
            }
         }
         else
         {
            System.out.print("\n¡¡¡ No hay Elementos !!!");
         }                                   
      }       
   //-------------------------------------------------------------------------------------
   //Eliminar un toda la lista   
       public void elimLista()
      {  
         Nodo elim,sig;
         elim = primero;
     
         while(primero != null)
         {
            primero = primero.sig;
            elim.sig = null;
            elim = primero;
         }
      }   
   //------------------------------------------------------------------
     //Mostrar todos los Elementos de la lista ordenada  
       public void mostrarLista()
      {
         Nodo mostrar;
         mostrar = primero;
     
         if(primero != null) 
         {
            while(mostrar != null)
            {
               System.out.print("\n Elemento--> "+mostrar.dato);
               mostrar = mostrar.sig;
            }
         }
         else
         {
            System.out.print("\n¡¡¡ Lista vacia !!!");
         }
      }
   //------------------------------------------------------------------------
   }


/* Clase Nodo */

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

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)          {             ...

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...