Faça um programa que leia caracteres (um a um) e verifique se a sequência de caracteres digitados forma uma pelíndrome.
use na solução tres pilhas para guardar os valores digitados.
Quem puder me ajudar , Desde já agradeço .
int main(){
Pilha *p1,*p2,*p3;
char lido,aux,flag=1;
init(&p1);
init(&p2);
init(&p3);
do{
printf("digite uma palavra e <.> p/ testar Palindromo:");
fflush(stdin);
lido=getch();//scanf("%c",&lindo); aqui é da sua escolha
push(&p1,lido);
push(&p2,lido);
}while(lido!='.');
while(!isEmpty(p1)){
pop(&p1,&lido);
push(&p3,lido);
}
while(!isEmpty(p2)){
pop(&p2,&lido);
push(&p3,aux);
if(aux!=lido)
flag=0;
}
(flag)?printf("\nE um palindromo"):printf("\nNao e um palindromo");
}
Cara não vai ganhar nenhum premio por isso mas acho que resolve, se precisar do tad da pilha tem nos meus arquivos, pode me adicionar se quiser dar uma olhada na lista. Mas é uma pilha dinâmica(com alocação dinâmica de memoria e ponteiros) mas a logica é a mesma, le o caracter digitado e o insere nas pilhas 1 e 2 até que o usuário digite ponto"." ai retiro todos os elementos da pilha um para a pilha 3, depois é so retirar os elementos da pilha 2 e 2 e ir comparando um a um se todos forem iguais, é um palindromo.
Se sua pilha é so um vetor ou oum tad opu ou tad com lista dinãmica a logiaca é sempre a mesma, pilha é pilha.
espero que ajude.
Para escrever sua resposta aqui, entre ou crie uma conta.
Estrutura de Dados I
•UNINTER
Compartilhar