[Antiguo Blog] Pilas

on lunes, 11 de agosto de 2014
Clase PilaS:
package Pila;

public class PilaS 
{
 private int Tope = -1;
 private int Max;
 private int Pila[];
 public int DatoPila;
 
 public PilaS(int CantMax)
 {
  Pila = new int[CantMax];
  Max = CantMax;
 }
 
 private boolean PilaVacia()
 {
  boolean resp = false;
  if(Tope == -1)
   resp = true;
  return resp;
 }
 
 private boolean PilaLlena()
 {
  boolean resp = false;
  if((Tope-1) == Max)
   resp = true;
  return resp;
 }
 
 public boolean InsertarPila(int Dato)
 {
  boolean resp = false;
  if(!PilaLlena())
  {
   Tope++;
   Pila[Tope] = Dato;
   resp = true;
  }
  return resp; 
 }
 
 public boolean RemoverPila()
 {
  boolean resp = false;
  if(!PilaVacia())
  {
   DatoPila = Pila[Tope];
   Tope--;
   resp = true;
  }
  return resp;
 }
 
 public boolean VerPila()
 {
  boolean resp = false;
  if(!PilaVacia())
  {
   DatoPila = Pila[Tope];
   resp = true;
  }
  return resp;
 }

}

Clase ProyectosPilas:
Este contiene el main y demas funciones.
package Pila;

public class ProyectosPilas 
{

 public static void main(String[] args) 
 {  
  //Pila Normal Mostrar Elementos inverso a como fueron insertados
  Ej0();
  //Pila Insertamos y mostramos en otra Pila de forma que fueron insertados 
  Ej1();
  //Pila Insertamos y mostramos en la Pila Principal o 0 de forma que fueron insertados
  Ej2();
 }
 
 private static void Ej0()
 {
  int num = read.dataInt("Total de Elementos en la Pila: ");
  PilaS P = new PilaS(num);
  for(int x = 0; x < num; x++)
  {
   P.InsertarPila(read.dataInt("Dato a Insertar[" + x + "]:"));
  }
  
  while(P.RemoverPila())
   SOP(P.DatoPila);
 }
 
 private static void Ej1()
 {
  int num = read.dataInt("Total de Elementos en la Pila: ");
  PilaS P = new PilaS(num);
  PilaS P0 = new PilaS(num);
  for(int x = 0; x < num; x++)
  {
   P.InsertarPila(read.dataInt("Dato a Insertar[" + x + "]:"));
  }
  
  while(P.RemoverPila())
   P0.InsertarPila(P.DatoPila);
  while(P0.RemoverPila())
   SOP(P0.DatoPila);
 }
 
 private static void Ej2()
 {
  int num = read.dataInt("Total de Elementos en la Pila: ");
  PilaS P = new PilaS(num);
  PilaS P0 = new PilaS(num);
  for(int x = 0; x < num; x++)
  {
   P.InsertarPila(read.dataInt("Dato a Insertar[" + x + "]:"));
  }

  while(P.RemoverPila())
   P0.InsertarPila(P.DatoPila);
  //P = P0;
  
  PilaS P1 = new PilaS(num);
  while(P0.RemoverPila())
   P1.InsertarPila(P0.DatoPila);
  while(P1.RemoverPila())
   P.InsertarPila(P1.DatoPila);
  
  while(P.RemoverPila())
   SOP(P.DatoPila);
 }
 
 private static void SOP(int msj)
 {
  System.out.println(msj);
 }

}
Clase read: Esta clase no la cree yo sino un amigo Jackz(cryptt3r) con la que siempre utilizo para leer jeje
package Pila;
import java.io.*;

/**
 * @author cryptter
 */
public class read
{
 public static boolean error;
 public static String data(String message) {
     String sdato = "";
     System.out.print(message);
     try {
       // Definir un flujo de caracteres de entrada: flujoE
       InputStreamReader isr = new InputStreamReader(System.in);
       BufferedReader flujoE = new BufferedReader(isr);
       // Leer. La entrada finaliza al pulsar la tecla Entrar
       sdato = flujoE.readLine();
     }
     catch(IOException e) {
       System.err.println("Error: " + e.getMessage());
     }
     return sdato; // devolver el dato tecleado
   }
 public static int dataInt(String message){
     try {
      error=false;
      int val=Integer.parseInt(data(message));
      if (val<-32768 data-blogger-escaped-val="">32767)
       error=true;
       return val;
     }
     catch(NumberFormatException e) {
       return Integer.MIN_VALUE; // valor más pequeño
     }
 }

 public static short datoShort(String message){
    try {
   return Short.parseShort(data(message));
  }
  catch (NumberFormatException e){
   return Short.MIN_VALUE;
  }
 }



 public static long dataLong(String message){
  try {
   return Long.parseLong(data(message));
  }
  catch (NumberFormatException e){
   return Long.MIN_VALUE;
  }
 }

 public static float dataFloat(String message){
  try {
   Float f = new Float(data(message));
   return f.floatValue();
  }
  catch (NumberFormatException e){
   return Float.NaN;
  }
 }

 public static double dataDouble(String message){
  try {
   Double d = new Double(data(message));
   return d.doubleValue();
  }
  catch (NumberFormatException e){
   return Double.NaN;
  }
 }
 /*public static char dataChar(String message){
  try {
   Char d = new Char(data(message));
   return d.charValue();
  }
  catch (NumberFormatException e){
   return Char.NaN;
  }
 }*/
}

0 comentarios:

Publicar un comentario