Pilas en Java
Bueno, voy a poner el código de un programa en Java que hace uso de pilas. En este programa se le ingresa una palabra (hasta las groserías funcionan…), y separa las letras y las imprime de una en una de abaja hacia arriba:
Ejemplo: Si se escribe la palabra JAVA.
La impresión sera:
A
V
A
J
Bueno, aquí esta el código:
import java.io.*;
import java.util.Scanner;
public class PilaCadena{
public static void main( String args[] ){
Scanner leer = new Scanner(System.in);
operapilaschar Obj = new operapilaschar();
String cadena;
char ch;
System.out.println( "Escribe texto:" );
cadena = leer.next();
for( int i=0; i<cadena.length(); i++ ){
ch = cadena.charAt(i);
Obj.push(ch);
}
for( int i=0; i<cadena.length(); i++ ){
Obj.pop();
System.out.println( Obj.dret );
}
}
}
Hace uso de los métodos de la siguiente clase:
class operapilaschar
{
public static char dret;
public static int max;
public static char pila[];
public static int tope = -1;
public operapilaschar()
{
max=20;
pila=new char [max];
}
public operapilaschar(int n)
{
max=n-1;
pila = new char [max];
}
public static boolean pila_Llena(int tope,int max)
{
boolean llena;
if (tope==max)
llena=true;
else
llena=false;
return llena;
}
public static boolean pila_Vacia(int tope)
{
boolean vacia;
if (tope == -1)
vacia=true;
else
vacia=false;
return vacia;
}
public static void push(char dato)
{
if(pila_Llena(tope,max))
System.out.println("!Cuidado!, Desbordamiento!!!!!");
else
{
tope++;
pila[tope]=dato;// pone el nuevo dato en la pila
}
}
public static void pop()
{
if (pila_Vacia(tope))
System.out.println("!Cuidado!, Subdesbordamiento!!!!!");
else {
dret=pila[tope];
tope--;
}// actualiza tope y se elimina elemento en el tope
}
public static boolean compara(int dret,int ch)
{
if (dret=='(' && ch==')' || dret=='{' && ch=='}' || dret=='[' && ch==']')
return true;
else
return false;
}
public static void estado()
{
int i;
System.out.println(" El estado de la pila es : ");
System.out.println(" --------------------------");
for(i=0;i<=tope;i++)
{
System.out.println("pila["+i+"] : "+pila[i]);
}
}
}


te felicito por el trabajo y dedicacion
cristian
September 25, 2008 at 12:59 pm
Hola!*
muy buen aporte..felicidades x eso!*
mmm…tengo una duda…
¿el programa tiene errores o es mi compilador?
lo que pasa es que cuando lo compilo me marca muchisimos erores..la verdad es k no soy muy buena en esto ..hice el intento en corregir pero no me sale..no se si puedas ayudarme cn esto..de antemano gracias!*
aki mi mail isis2d@hotmail.com
Dulce
November 6, 2008 at 11:36 pm
El programa esta bien, lo que pasa es que de seguro te salio mal al copiar directamente de aquí e intentaste compilar.
Casi siempre hay problemas con las comillas o algún otro carácter, hay que checar bien los errores que de el compilador.
Link
November 10, 2008 at 9:20 pm
disculpa pero me paso lo mismo cuando copie tu codigo quisiera saber si me pudes orientar un poco mas apenas estoy empezando a manejar java y pues ya sabes algunas cosa se me complican si me pudiese ayudar te lo agradeciar
gracias
Angel
November 23, 2008 at 5:26 pm
nesecito ayuda con listas y colas, debo hacer un programa que ingrese un nombre de un autmovil y que le asigne algun trabajo(pintar, enderesar, limpiar, etc) y luego que los pueda mostrar
Fabian
March 7, 2009 at 2:53 pm
graciaaaaaas uf no sabes cuanto he necesitado tu programa!!
alex
March 16, 2009 at 5:00 pm
oye men porfa mandame el codigo ami correo mepec_186@hotmial.com
esk no me permite compilarlo
mario
October 12, 2009 at 6:37 pm