Mostrando las entradas con la etiqueta pila. Mostrar todas las entradas
Mostrando las entradas con la etiqueta pila. Mostrar todas las entradas
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;
  }
 }*/
}