Olá, não sei se fui claro no título, mas estou realizando a matéria de estrutura de dados e preciso verificar se é um palíndromo ou não usando Pilhas e Filas. Eu não posso alterar nada nas classes, somente na main, eu cheguei a isso.
String s = "TESTE";
Pilha p = new Pilha(s.length());
Fila f = new Fila(s.length());
char s2;
// while(!f.isFull()){
for (char c : s.toCharArray())
f.push(c);
for (int i = 0; i < s.length(); i++) {
System.out.print(f.pop());
}
System.out.println("");
System.out.println("-------");
for (char c : s.toCharArray())
p.push(c);
for (int i = 0; i < s.length(); i++) {
s2=p.pop();
System.out.print(s2);
}
A saída é:
TESTE
ETSET
Mas como consigo faço para comparar se as duas saídas são iguais? Ou seja na mesma posição seja a mesma letra.
Segue as classes:
public class Fila{
private char[] vetor;
private int fim;
public Fila(int tam){
vetor = new char[tam];
fim = -1;
}
public void push(char valor){
if(fim == vetor.length-1)
System.out.println(“Fila Cheia!”);
else{
fim++;
vetor[fim]=valor;
}
}
public char pop(){
char aux = vetor[0];
if(fim>=0){
for(char i=0; i<fim; i++)
vetor[i] = vetor[i+1];
fim–;
return aux;
} else{
System.out.println(“Fila Vazia!”);
return ‘?’;
}
}
public boolean isFull(){
return (fim == vetor.length-1);
}
public boolean isEmpty(){
return (fim == -1);
}
}
public class Pilha{
private char[] vetor;
private int topo;
public Pilha(int tam){
vetor = new char[tam];
topo = -1;
}
public void push(char valor){
if(topo==vetor.length-1)
System.out.println(“Pilha Cheia!”);
else{
topo++;
vetor[topo]=valor;
}
}
public char pop(){
int aux = topo;
if(topo>=0){
topo–;
return vetor[aux];
} else{
System.out.println(“Pilha Vazia!”);
return ‘?’;
}
}
public boolean isFull(){
return (topo == vetor.length-1);
}
public boolean isEmpty(){
return (topo == -1);
}
}