Pilha Palindromo
Artigos Científicos: Pilha Palindromo. Pesquise 862.000+ trabalhos acadêmicosPor: • 14/11/2014 • 368 Palavras (2 Páginas) • 1.223 Visualizações
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#define tam 10
//hgs pilha aula7 palindromo
typedef struct
{
int topo;
char el[tam];
} pilha;
void inicia(pilha *p)
{
p->topo=-1;
}
int cheia (pilha *p)
{
return (p->topo==tam-1);
}
int vazia(pilha *p)
{
return (p->topo==-1);
}
int push (pilha *p, char val)
{
if (cheia(p))
return 0; // pilha cheia
p->el[++p->topo]=val;
return 1;
}
int pop (pilha *p, char *val)
{
if (vazia(p))
return 0; // pilha vazia
*val=p->el[p->topo--];
return 1;
}
void imprime(pilha p)
{
int i;
for(i=p.topo; i>=0; i--)
printf("[ %d ]\n",p.el[i]);
}
main()
{
pilha s;
char palavra[tam], inv[tam];
int i;
puts("Digite uma palavra: ");
fflush(stdin);
gets(palavra);
inicia(&s);
for(i=0; i<strlen(palavra); i++)
push(&s,palavra[i]);
i=0;
while(!vazia(&s))
{
pop(&s,&inv[i]);
i++;
}
inv[i]='\0'; //terminador de string -> \0
if(strcmp(palavra,inv)==0)
printf("\nPalindromos: %s == %s\n",palavra,inv);
else
printf("\nNao sao Palindromos: %s != %s\n",palavra,inv);
getch();
}
...