Eu preciso implementar um método ehSimétrico() que retorna verdadeiro caso as duas metades de um deque sejam simétricas e falso caso não seja. Eu consegui fazer essa função abaixo mas ele só retorna false. Alguem me ajuda por favor!!
Exemplos:
A B A A B A → verdadeiro
A B C X Y A → falso
X Y Z Y X → verdadeiro
bool ehSimetrico(Deque* deque) {
int tam = tamanho(deque);
int i;
No* apontador = deque->cabeca;
No* anterior = deque->cabeca->anterior;
char dadoApontador;
char dadoAnterior;
if(tam % 2 == 0) {
int limite = tam/2;
for(i = 1; i <= limite; i++) {
dadoApontador = apontador->dado.caracteres;
dadoAnterior = anterior->dado.caracteres;
if(dadoApontador != dadoAnterior) {
return false;
}
apontador = apontador->proximo;
anterior = anterior->anterior;
}
}else {
int limite = floor(tam/2);
for(i = 1; i <= limite; i++) {
dadoApontador = apontador->dado.caracteres;
dadoAnterior = anterior->dado.caracteres;
if(dadoApontador != dadoAnterior) {
return false;
}
apontador = apontador->proximo;
anterior = anterior->anterior;
}
}
return true;
}