#include <stdio.h>
#include <stdlib.h>
int empilhar(int *pilha, int elemento, int tam, int *pont)
{
if(tam==*pont)
{
printf("\nPilha cheia!\n");
return 0;
}
else{
pilha[*pont]=elemento;
*pont=*pont+1;
return 1;
}
}
int desempilhar(int *pilha, int tam, int *pont){
if(*pont==0)
{
printf("\nPilha ja vazia!\n");
return 0;
}
else{
*pont=*pont-1;
pilha[*pont]=NULL;
return 1;
}
}
int main() {
char op;
int ok, tam, *pilha, elemento,pont=0,i;
printf("Informe o tamanho desejado para a pilha: ");
scanf("%d",&tam);
if((pilha=(int*)malloc(tam*sizeof(int)))==NULL) exit(1);
do{
printf("\n(e)mpilhar (d)esempilhar (s)air: ");
getchar();
scanf("%c",&op);
switch (op){
case 'e':
printf("\nInforme o elemento a ser inserido: ");
scanf("%d",&elemento);
ok=empilhar(pilha,elemento,tam,&pont);
if(ok)printf("\nEmpilhamento feito com sucesso!\n");
else printf("\nNao foi possivel inserir o novo elemento\n");
for(i=0;i<tam;i++){
printf("%d\t",pilha[i]);}
printf("\n");
break;
case 'd':
ok=desempilhar(pilha,tam,&pont);
if(ok)printf("\nElemento retirado com sucesso!\n");
else printf("\nNao foi possivel retirar o elemento\n");
for(i=0;i<tam;i++){
printf("%d\t",pilha[i]);}
printf("\n");
break;
}
}while(op!='s');
return 0;
}
Blog legal! Muuio boa a iniciativa!
ResponderExcluir