Buscar

Implementação de Pilha em C

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 3 páginas

Prévia do material em texto

#include "pilha.h" 
 
struct pilha { 
 int topo; 
 int dados[MAX]; 
}; 
Pilha * cria_Pilha () { 
 Pilha * p; 
 p = (Pilha *) malloc(sizeof(Pilha)); 
 if (p != NULL) { 
 p->topo = 0; 
 } 
 return p; 
} 
void libera_Pilha (Pilha **apont) { 
 if (*apont != NULL) { 
 free(*apont); 
 *apont = NULL; 
 } 
} 
int Pilha_vazia (Pilha * p) { 
 if (p= !NULL && p->topo !=0) { 
 return 0; 
 } 
 return 1; 
} 
int Pilha_cheia (Pilha * p) { 
 if (p != NULL && p->topo == MAX) { 
 return 1; 
 } 
 return 0; 
} 
 
int push (int i, Pilha * p) { 
 if (p != NULL && !Pilha_cheia(p)) { 
 p->dados[p->topo++] = i; 
 return 1; 
 } 
 return 0; 
} 
int pop (int *i, Pilha *p) { 
 if (p != NULL & !Pilha_vazia(p)) { 
 *i = p->dados[--p->topo]; 
 return 1; 
 } 
 return 0; 
} 
 
int tamanho_Pilha (Pilha *p) { 
 if (p != NULL & !Pilha_vazia(p)) { 
 return p->topo; 
 } 
 return 0; 
} 
 
int verifica_Pilha (int *i, Pilha *p) { 
} 
 
void mostra_Pilha (Pilha *p, char *msg) { 
 int i; 
 printf ("\n%s\n", msg); 
 if (Pilha_vazia(p)) { 
 printf ("A pilha está vazia"); 
 } else { 
 for (i=p->topo-1; i>=0; i--) { 
 printf ("[%d]", p->dados[i]); 
 } 
 } 
 printf ("\n"); 
} 
 
int palindromo_Pilha (char *palavra) { 
 Pilha * p = cria_Pilha(); 
 int i, letra, teste = 0; 
 
 for(i=0; i<strlen(palavra); i++) { 
 push(palavra[i], p); 
 } 
 
 for(i=0; i<strlen(palavra); i++) { 
 pop(&letra, p); 
 if(letra != palavra[i]) { 
 teste = 1; 
 break; 
 } 
 } 
 return teste; 
}

Continue navegando

Outros materiais