sexta-feira, 26 de abril de 2013

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