#include<stdio.h> #include<stdlib.h> #define MAX 10 //--------------------------------estrutura--------------------------- typedef struct pin { int P[MAX]; int topo; }PILHA; int push (PILHA PVET, int vr); int pop(PILHA PVET); int pilhacheia (PILHA PVET); int pilhavazia (PILHA PVET); int elemento_topo (PILHA PVET); //----------------------MAIN------------------------------------------ int main() { PILHA pilha; pilha.topo=-1; int opc='s',retorno,aux; while(opc!=0) { puts("\n"); puts("[1] Insira:"); puts("[2] Remova:"); puts("[3] Mostra Topo:"); puts("[0] Sair do Programa:"); printf ("\nDigite Opcao Desejada:\n\n"); scanf("%d",&opc); switch(opc) { case 1: printf("Insere na pilha:"); scanf("%d",&aux); retorno=push(pilha,aux); if(retorno==1) printf("O valor incrementado na pilha!\n"); else printf("Pilha Cheia!"); break; case 2: retorno=pop(pilha); if (retorno==1) printf("Topo da pilha removido!\n"); else printf("Pilha Vazia!\n"); break; case 4: pop(pilha); break; case 3: retorno=elemento_topo(pilha); if (retorno!=-999) printf("Pilha Vazia!"); else printf("O elemento Topo da Pilha e:%d",aux); break; case '0': printf(" Sair do Programa "); break; } getchar(); } } //##############FUNCOES################## //##########COLOCAR###################### int push (PILHA PVET, int vr){ int ret=0; if(!pilhacheia(PVET)){ PVET.P[++PVET.topo]=vr; ret=1; } return (ret); } //#########REMOVE######################## int pop(PILHA PVET){ int ret=0; if (!pilhavazia(PVET)){ PVET.topo--; ret=1; } return (ret); } //########PILHACHEIA###################### int pilhacheia (PILHA PVET){ return (PVET.topo==MAX-1); } //########PILHAVAZIA###################### int pilhavazia (PILHA PVET){ return (PVET.topo==-1); } //#########ELEMENTO_TOPO################## int elemento_topo (PILHA PVET){ int ret=-999; if (!pilhavazia(PVET)) ret=PVET.P[PVET.topo]; return (ret); } DESDE já AGRADEÇO...