Ir al contenido principal

Pila Doblemente enlazada en Java

    class P_Doble
   {
       public static void main(String x[])
      {
         Pila_Doble pd;
         pd= new Pila_Doble();
     
         int num,opc;   
         do
         {
            System.out.println("\n\nº-º-º  Menu Pila Doble  º-º-º ");
            System.out.print("\nº-º-º-º-º-º-º-º-º-º-º-º-º-º-º-º-º-º");
            System.out.print("\nº   1.Introducir un elemento      º");  
            System.out.print("\nº   2.Eliminar un elemento        º");
            System.out.print("\nº   3.Mostrar elemento de tope    º");
            System.out.print("\nº   4.Consultar todos             º");
            System.out.print("\nº   5.Salir                       º");
            System.out.print("\nº-º-º-º-º-º-º-º-º-º-º-º-º-º-º-º-º-º");
            opc=Aleatorio.generaNum(1,5);
            System.out.print("\n\n Seleccion Aleatoria: "+opc);                                
            
            switch(opc) 
            {
               case 1: pd.Push_Insertar();
                  break;
               case 2: pd.Pop_Eliminar();
                  break;
               case 3: pd.verTope();
                  break;
               case 4: pd.mostrarTodosE();
                  break;
               default: System.out.print("\n ¡¡¡ G O O D  B Y E !!!");
            }                       
         } 
           while(opc <= 4);            
      }
   }

/* Nombre: Pila_Doble
   Alumno: Luis Alberto Ochoa Bernal 
    Fecha: 30/09/06 */


    class Pila_Doble
   {
      private int tope1,num,tope2;
      private int tamaño=30;
      private int pila[];
  
   //Constructor 
   //------------------------------------------------------------------------
       Pila_Doble()
      {
         tope1=-1; 
         tope2=tamaño+1;
         pila=new int[tamaño]; 
      }
      
   // Metodo para introducir un elemento a la pila
   //------------------------------------------------------------------------
       public void Push_Insertar()
      {
         System.out.print("\n Pila 1: \n Pila 2:");   
         int num= Aleatorio.generaNum(1,2);
     
         if(num==1)
         {
            System.out.print("\n ---- Es la Pila 1 ----");   
        
            if(!pilaLLena(tope1,tope2))
            {
               System.out.print("\nDame Nuevo --->"); 
               int nuevo=Teclado.readInt();
             
               tope1++;
           
               if(tope1==tamaño)
                  tope1--;
           
               if(tope1==tope2-1)
                  tope2++;
               pila[tope1]=nuevo;//Nuevo Elemento   
            }
            else
            {
               System.out.print("\n ¡¡¡ Pila 1 llena !!!");
            }
         }
      //------------------------------------------------------------------------
         if(num==2)
         {
            System.out.print("\n ---- Es Pila 2 ----");
            if(!pilaLLena(tope1,tope2))
            {
               System.out.print("\nDame Nuevo --->"); 
               int nuevo=Teclado.readInt();
           
               tope2--;
           
               if(tope2==0)
                  tope2--; 
               pila[tope2-1]=nuevo;//Nuevo Elemento   
            }
            else
            {
               System.out.print("\n ¡¡¡ Pila 2 llena !!!");
            }
         } 
      }
  
   // Metodo para extraer un elemento de la pila   
   //------------------------------------------------------------------------
       public void Pop_Eliminar()
      {
         int num=Aleatorio.generaNum(1,2);
     
         if(num==1)
         {
            if(pilaVacia1()==true)
            {
               System.out.print("\n ¡¡¡ Pila 1 Vacia !!!");
            }     
            else
            {
               int x=pila[tope1];
               tope1--;
            }
         }  
         if(num==2)
         {
            if(pilaVacia2()==true)
            {
               System.out.print("\n ¡¡¡ Pila 2 Vacia !!!");
            }     
            else
            {
               if(tope2==tamaño)
                  tope2--;
           
               int x=pila[tope2];
               tope2++;
            }
         }
      }
  
     // Metodo para checar si la pila esta vacia   
    //------------------------------------------------------------------------
       public boolean pilaVacia1()
      {
         boolean resp;
         if(tope1==-1)
            resp=true;       
         else
            resp=false;
         return(resp);
      }
   //------------------------------------------------------------------------
       public boolean pilaVacia2()
      {
         boolean resp;
         if(tope2==tamaño+1)
            resp=true;       
         else
            resp=false;
         return(resp);
      }
  
   // Metodo para checar si la pila esta llena
   //------------------------------------------------------------------------    
       public boolean pilaLLena(int tope1, int tope2)
      { 
         boolean resp=false;
         if(tope2-tope1==1)
         {resp=true;}
        
         else if(tope2-tope1!=1)
         {resp=false;}
     
         return resp; 
      }
  
  
     // Metodo para mostrar el tope
     //------------------------------------------------------------------------
       public  void verTope()
      {
         num=Aleatorio.generaNum(1,2);
         if(num==1)
            verTope1();
         if(num==2)
            verTope2();
      }
       public void verTope1()
      {
         System.out.print("\n\n º-º-º tope 1 º-º-º"); 
              
         if(!pilaVacia1())
         {
            int x=pila[tope1];
            System.out.print("\n Elemento del Tope 1:  "+x);
         }
         else
         {
            System.out.print("\n ¡¡¡ Pila 1 Vacia !!!");
         }
      }   
      //------------------------------------------------------------------------
       public void verTope2()
      { 
         if(num==2)
         {
            System.out.print("\n\n º-º-º tope 2 º-º-º"); 
            if(!pilaVacia2())
            { 
               int x;
               x=pila[tope2];
               System.out.print("\n Elemento del Tope 2:  "+x);
            }
            else 
            {
               System.out.print("\n ¡¡¡ Pila 2 Vacia !!!");
            }
         }
      }        
    
     // Metodo para mostrar todos los elementos de la pila
     //------------------------------------------------------------------------
       public void mostrarTodosE()
      {
         if(!pilaVacia1())
         {
            for(int i=0; i<=tope1; i++)
            {
               int x=pila[i];
               System.out.print("\n Elemento de la Pila 1:  "+x);
            }
         }   
         else
         {
            System.out.print("\n ¡¡¡ Pila 1 Vacia !!!");
         } 
      
         if(!pilaVacia2())
         {
            for(int i=tope2; i<tamaño; i++)
            {
               int x=pila[i];
               System.out.print("\n Elemento de la Pila 2:  "+x);
            }
         }     
         else
         {
            System.out.print("\n ¡¡¡ Pila 2 Vacia !!!");
         }
      }
      //------------------------------------------------------------------------  
   }

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