Viernes 15 de junio de 2012
Proyecto Pilas con memoria dinámica para Procesamiento de Datos Grupo de dos alumnos máximo Peso 10% Utilizando la estructura Pila con Memoria Dinámica, diseñar un programa que permita cargar en un arreglo de caracteres una palabra o una frase (cada carácter en una posición del arreglo, tamaño del arreglo m=40), utilizando una pila de registros con memoria dinámica determine si la palabra del arreglo es capicúa o palíndromo.
Sugerencias Crear una clase Nodo para la pila donde se guardarán cada uno de los caracteres del arreglo a excepción de los espacios en blanco y caracteres especiales. Public class Nodo{ Nodo antes; char letra; Public nodo() { } } En la clase principal, guarde la palabra o frase en una variable String llamada palabra, cree el arreglo de caracteres y la pila final int m=40; char[] arreglo=new char[m]; Nodo pila=new Nodo(); pila.antes=null; Declare un contador de caracteres para el arreglo
int cont=0; Guarde en el arreglo y en la pila solo los caracteres alfabéticos sin espacios en blanco ni caracteres especiales for (int i=0;i<palabra.length();i++) if (Character.isLetter(palabra.charAt(i)) { Nodo auxiliar = new Nodo(); auxiliar.antes = pila; pila=auxiliar; pila.letra=palabra.charAt(i); arreglo[cont]=pila.letra; cont++;
}
Por último compare los caracteres guardados en la pila y en el arreglo para determinar si la palabra es palíndromo. Puede utilizar un switch booleano para la comparación boolean sw=true; Cuando compare, dentro de un ciclo, si el ciclo es for puede romperlo con break. for (int k=0;k<cont;k++){ if (arreglo[k]!=pila.letra) { sw=false; break; } pila=pila.antes; }