Ir al contenido principal

Multiple Pilas en Java

//--Multiple Pilas
//--

    class Menu_Multi_Pila
   {
       public static void main(String arr[])
      {   
         Multi_Pilas mp;
         mp = new Multi_Pilas();
     
         int opc,pila;   
         do
         {
            System.out.println("\n\n-º-º-º Menu Multi Pilasº-º-º");                  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 elementos          º");
            System.out.print("\nº  4.Consultar el primero       º");       
            System.out.print("\nº  5.Consultar el ultimo        º");
            System.out.print("\nº-º-º-º-º-º-º-º-º-º-º-º-º-º-º-º-º");
            System.out.print("\nSeleccione una opcion --->");
            opc=Teclado.readInt();
                                    
            switch(opc) 
            {
               case 1: System.out.print("\n Seleccione Pila: "); 
                  pila=Teclado.readInt();
                  if(pila > 4)
                  {
                     opc= 5;
                     System.out.print("\n Fuera de rango..."); 
                  }
                  else
                  {
                     mp.Push_Insertar(pila-1);
                  }
                  break;
               case 2: System.out.print("\n Seleccione Pila: "); 
                  pila=Teclado.readInt();
                  if(pila > 4)
                  {
                     opc = 5;
                     System.out.print("\n Fuera de rango...");
                  }
                  else
                  {
                     mp.Pop_Eliminar(pila);
                  }
                  break;
               case 3: System.out.print("\n Seleccione Pila: "); 
                  pila=Teclado.readInt();
                  if(pila > 4)
                  {
                     opc = 5;
                     System.out.print("\n Fuera de rango...");
                  }
                  else
                  {
                     mp.ImpElementos(pila-1);
                  }
                  break;
               case 4: System.out.print("\n Seleccione Pila: "); 
                  pila=Teclado.readInt();
                  if(pila > 4)
                  {
                     opc = 5;
                     System.out.print("\n Fuera de rango...");
                  }
                  else
                  {
                     mp.PrimElemento(pila-1);
                  }
                  break;
               case 5: System.out.print("\n Seleccione Pila: "); 
                  pila=Teclado.readInt();
                  if(pila > 4)
                  {
                     opc = 5;
                     System.out.print("\n Fuera de rango...");
                  }
                  else
                  {
                     mp.UltElemento(pila-1);
                  }
                  break;
               default:System.out.print("\n\n¡¡¡¡ G O O D  B Y E !!!!");
            }
         }                       
           while(opc<=5);    
      }
   }

//--Multiple Pilas
//--Luis Alberto Ochoa Bernal

    class Multi_Pilas
   {
      int U[];
      int P[];
      int tam=20;
      int tamPila=4;
      int MultiPila[];
   
    //Constructor  
   //------------------------------------------------------------------
       Multi_Pilas()
      {
         P=new int [tamPila];
         U=new int [tamPila];
         MultiPila=new int[tam];   
     
         for(int i=0; i<tamPila; i++)
         {
            P[i]= tamPila*(i+1);
            U[i]= (tamPila*(i)+1)-1;
         }
      }
      
   // Metodo para insertar un elemento    
   //-----------------------------------------------------------------
       public void Push_Insertar(int i)
      {
         if(!pilaLlena(i))
         {
            if(P[i]==(tamPila*(i+1)))
            {
               U[i]=U[i]+1;
               P[i]=P[i]+1;
               System.out.print("\nDame el nuevo :");
               int nuevo=Teclado.readInt();
               U[i]=nuevo;
            }
            else
            {
               int pos=(tamPila*(i)+1)-1;
               System.out.print("\nDame el nuevo :");
               int nuevo=Teclado.readInt();
               U[i]=pos;
               MultiPila[U[i]]=nuevo;
            }
         }
         else          
         {
            System.out.print("\n ¡¡¡ No hay espacio !!!");
         }
      }
    //Metodo para eliminar un elemento
   //-----------------------------------------------------------------
       public void Pop_Eliminar(int i)
      {
         int dato; 
     
         if(!pilaVacia(i)) 
         {
            dato=MultiPila[U[i]];
            U[i]--;
         }    
         else
         {
            System.out.print("\n\n ¡¡¡ Pila Vacia !!!");
         }   
      }
  
   //Metodo para saber si esta Llena
   //-----------------------------------------------------------------
       public boolean pilaLlena(int i)
      {
         boolean resp; 
         int maxCola=tam*(i+1)-1; 
       
         if(((P[i]==tamPila*(i)) && (U[i]==maxCola)) || (U[i]==P[i]-1))
         {
            resp=true;
         }
         else
         {
            resp=false;
         }
       
         return(resp);                           
      }
      
   //Metodo para ver si esta Vacia
   //-----------------------------------------------------------------
       public boolean pilaVacia(int i)
      {
         boolean resp; 
     
         if((P[i]==tamPila*(i)-1)&&(U[i]==tamPila*(i)-1))
         {
            resp=true;
         }   
         else
         {
            resp=false;
         }   
         return(resp);   
      }
      
   //Metodo para mostrar el ultimo elemento
   //-----------------------------------------------------------------
       public void UltElemento(int i)
      {
         if(!pilaVacia(i))
         {
            int u=MultiPila[U[i]];
            System.out.print("\n\nUltimo elemento---> "+u);
         }
         else
         {
            System.out.print("\n\n ¡¡¡ Pila vacia !!!"); 
         }
      }
      
   //Metodo para mostrar Primer elemento
   //-----------------------------------------------------------------
       public void PrimElemento(int i)
      {
         if(!pilaVacia(i))
         {
            int p=MultiPila[P[i]];
            System.out.print("\n\nPrimer elemento---> "+p);
         }
         else
         {
            System.out.print("\n\n ¡¡¡ Pila vacia !!!"); 
         }
      }
      
   //Metodo para mostrar todos Los Elementos
   //-----------------------------------------------------------------
       public void ImpElementos(int i)
      { 
         if(!pilaVacia(i))
         {
            for(int j=P[i]; j<=U[i]; j++)
            {              
                 System.out.print("\n\nDatos de la Pila---> "+MultiPila[j]);
            }
         }   
         else
         {
            System.out.print("\n\n ¡¡¡ Pila 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...