Palindromo con Pilas en Java

Publicado: julio 22, 2010 en Java

import java.io.*;
 class Pila{
//creando la clase pila
 private static final int TAMPILA=79;
 //private char elemento;//se agrego este codigo para
 private int cima;
 private char []listaPila;
 //constructor de la clase pila
 public Pila()
 {
 cima=-1;
 listaPila=new char[TAMPILA];
 }
 public void insertar(char elemento) throws Exception
 {
 if(pilaLlena())
 {
 throw new Exception("Desbordamiento de pila");
 }
 cima++;
 listaPila[cima]=elemento;
 }
 public char quitar()throws Exception
 {
 char aux;
 if(pilaVacia())
 {
 throw new Exception("pila vacia, no se puede exceder");
 }
 aux=listaPila[cima];
 cima--;
 return aux;
 }
 public boolean pilaVacia()
 {
 return cima==-1;
 }
 public boolean pilaLlena()
 {
 return cima==TAMPILA-1;
 }
 public void limpiarPila()
 {
 cima=-1;
 }
 }

En otro archivo:

import java.io.*;
 class Palindromo{
 public static void main(String args[])throws IOException{
 Pila pilaChar;
 char ch;
 boolean esPal;
 String pal;
 BufferedReader entrada=new BufferedReader(new InputStreamReader(System.in));
 try{
 pilaChar=new Pila();//crea pila vacia
 System.out.println("Teclea la palabra"+" a vereficar si es palindromo:");
 System.out.flush();
 pal=entrada.readLine();
 //se crea la pila con los caracteres de la palabra
 pilaChar=new Pila();
 for(int i=0; i<pal.length();)
 pilaChar.insertar(pal.charAt(i++));
 //se comprueba si es palindromo
 esPal=true;
 for(int j=0;esPal&& !pilaChar.pilaVacia();)
 {
 esPal=pal.charAt(j++)==pilaChar.quitar();
 }
 pilaChar.limpiarPila();
 if(esPal)
 System.out.println("La palabra "+pal+" es un palindromo \n");
 else
 System.out.println("la palabra "+pal+" no es un palindromo \n");
 }
 catch(Exception er)
 {
 System.out.println("Exception;"+er);
 }
 }
 }

Espero que les sirva :)
Anuncios
comentarios
  1. DANIEL dice:

    muchas gracias por compartir tus conocimientos… me han dado un trabajo de pilas y colas y quisiera saber si me puedes explicar un poco mas… gracias

  2. SERENA dice:

    ME HAS AYUDADO EN GRANDE MANERA AUNQUE TODAVIA TENGO DUDAS SOBRE EL TEMA….SALUDOS DTB

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s