Java - Ayuda con Ejercicio LinkedList

 
Vista:

Ayuda con Ejercicio LinkedList

Publicado por William (1 intervención) el 11/09/2016 17:57:25
Crear una aplicación Palindroma que permita introducir, por teclado, una frase. A partir de esa frase, crear una pila y una cola de letras (utilizar LinkedList en ambos casos).
Las dos estructuras solo deben permitir objetos del tipo Character ( LinkedList<Character> pila = new LinkedList<>(); )
Cada letra, una por vez, se debe insertar en la Pila y en la Cola, creadas.
Verificar si la frase es palíndroma (expresión que se lee igual de izquierda o de derecha; ej: Dábale arroz a la zorra el Abad), quitando un elemento de la pila y otro de la cola, por vez y comparando para determinar si son iguales o no.
Imprimir: un mensaje que indique si la frase es o no palíndroma y la cantidad de palabras de la frase. Tener en cuenta los acentos, signos de puntuación, espacios, etc.


AYUDA!!:
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Ayuda con Ejercicio LinkedList

Publicado por Yusniel (144 intervenciones) el 21/09/2016 15:38:05
Aquí le va una solución, espero le sirva!!!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public void Palindrome(String cadena){
        String cadena = TextField_Pal.getText();
 
        Queue<Character> cola=new LinkedList();
        Stack<Character> pila = new Stack<Character>();
        int longitud = cadena.length();
 
        for(int i =0; i< longitud; i++){ //Llenamos la pila y la cola con los valores de la frase
            cola.add(cadena.charAt(i));
            pila.add(cadena.charAt(i));
        }
        //contamos la cantidad de palabras de la frase
        int cantPalabras = 1; //inicializado en 1, no e cero, para que cuente bien la cant de palabras
        for(int i=0; i<longitud; i++){
            if(cadena.charAt(i)==' ')
                cantPalabras++;
        }
 
        //ahora comparamos la pila y la cola para decidir si la frase es palíndrome
        boolean palindrome = true;
        while(!cola.isEmpty()){
            if(cola.poll() != pila.pop()){
                palindrome = false; // con un solo caracter que sea distinto ya la cadena no es palíndrome
            }
        }
 
        if(palindrome)
            JOptionPane.showMessageDialog(this, "La cadena es palíndrome, y tiene " + String.valueOf(cantPalabras) + " palabras");
        else
           JOptionPane.showMessageDialog(this, "la cadena NO es palíndrome, y tiene " + String.valueOf(cantPalabras) + " palabras");
    }

Para esta función hay que incluir las siguientes clases:
1
2
3
import java.util.Queue;
import java.util.Stack;
import javax.swing.JOptionPane;

Un GigaSaludo!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar