Link Log

Una manera de perder el tiempo…

Pilas en Java

with 7 comments

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]);

  	 }

  }
}

Written by Link X

April 10, 2008 at 12:33 am

Posted in Java

Tagged with , ,

7 Responses

Subscribe to comments with RSS.

  1. te felicito por el trabajo y dedicacion

    cristian

    September 25, 2008 at 12:59 pm

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

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

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

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

  6. graciaaaaaas uf no sabes cuanto he necesitado tu programa!!

    alex

    March 16, 2009 at 5:00 pm

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


Leave a Reply