#include
struct elemento_pilha{
int info;
struct elemento_pilha *prox;
};
typedef struct {
struct elemento_pilha *topo;
}pilha;
void init(pilha *ps){
ps->topo = NULL;
}
void empty(pilha *ps){
if (ps->topo == NULL){
printf("\nA pilha esta vazia \n\n");
system("pause");
}
else{
printf("\nA pilha nao esta vazia \n\n");
system("pause");
}
}
void push(pilha *ps,int elemento){
struct elemento_pilha *p;
printf("\n\nDigite o elemento para empilhar :");
scanf("%d",&elemento);
p = (struct elemento_pilha *)malloc(sizeof(struct elemento_pilha));
p->info = elemento;
p->prox = ps->topo;
ps->topo = p;
}
void pop(pilha *ps){
int valor_topo;
struct elemento_pilha *aux;
valor_topo = ps->topo->info;
aux = ps->topo;
ps->topo = ps->topo->prox;
free(aux);
printf("\n O valor desempilhado e :%d",valor_topo);
printf("\n\n");
system("pause");
}
void stacksow(pilha *ps){
if (ps->topo==NULL){
printf("valor de topo : %d",ps->topo->info);
ps->topo--;
system("pause");
}
}
int menu (){
int a;
system("cls");
printf("\n(1)EMPTY");
printf("\n(2)PUSH");
printf("\n(3)POP");
printf("\n(4)stacksow");
printf("\n(5)SAIR");
printf("\n\nDIGITE :");
scanf("%d",&a);
return a;
}
main(){
int elemento;
struct pp *ps;
int op;
init(ps);
while(op!=5){
op = menu();
switch(op){
case 1:empty(ps);break;
case 2:push(ps,elemento);break;
case 3:pop(ps);break;
case 4:stacksow(ps);break;
default:printf("\n\n favor digite uma opcao valida ");break;
}
}
getchar();
getchar();
}
Nenhum comentário:
Postar um comentário