Olá, boa tarde
Uma aplicação inicial para pilhas é verificar se uma determinada frase é palíndromo.
Assim, uma palavra, ou frase é considerada um palíndromo quando pode ser lida tanto da direita para esquerda, como da esquerda para a direita.
Por exemplo:
SUBINOONIBUS
OVO
ANILINA
MATAM
SALAS
A solução deste problema se baseia no fato de que podemos realizar a leitura da palavra inserindo-a numa pilha.
Depois realizamos a remoção dos elementos comparando com o que foi lido anteriormente.
Assim podemos ter o seguinte código:
Vamos considerar que exista uma biblioteca chamada de pilha onde as funções primitivas estão armazenadas.
Assim:
int main()
{ int op, flag,i;
char frase[30];
pilha *p;
inicializa(p);
printf(" Entre com a frase a ser analisada\n ");
gets(frase);
printf("\n Mostrando a frase lida: %s ",frase);
// inserindo os dados na pilha
for(i=0;i<strlen(frase);i++)
push(p,frase[i]);
i =0;
flag = 1;
// variavel logica que verifica qdo o elemento for diferente
while (flag && i < strlen(frase))
{ // retiro elementos da pilha e comparo com os do vetor
if (frase[i]!=pop(p))
flag =0;
i++;
}
if (flag==0)
printf(" \n a frase %s não eh palindroma ",frase);
else
printf("\n a frase %s eh palindroma ",frase);
fflush(stdin);
getche();
}
Nenhum comentário:
Postar um comentário