int main(){ int i, remove; float aux; Pilha filha; inicializa_pilha(&filha, 5, sizeof(float)); for(i=0;i<5;i++){ scanf("%f", &aux); empilha(&filha, &aux); } mostra_pilha(filha, mostra_float); printf("\nRemover quantos elementos? (0 ate 5): "); scanf("%d", &remove); for(i=0;i<remove;i++) desempilha(&filha); mostra_pilha(filha, mostra_float); system("PAUSE"); }
//Esta funcao eh responsavel pela leitura de um item a ser retirado da pilha void ler(pilha *P, char &aux) { char item; int achou=0, temp; pilha *L; inicializa_pilha(L); clrscr(); mostra_pilha(P, L); printf("\nDigite o item a ser retirado: "); fflush(stdin); scanf("%c",&item); temp=L->topo; while(L->topo!=0) { pop(&aux, L); if(aux==item) achou=1; if(achou==0) push(aux, P); achou=0; } //Se temp for igual a P->topo significa que o item nao foi retirado, ou seja, //nao foi encontrado. if(temp==P->topo) { printf("\nItem nao cadastrado"); getch(); } }
void main(void) { tipo_pilha *pilha; /* criar por referencia para nao duplicar os dados.... */ inicializa_pilha ( pilha ); carrega_pilha ( pilha ); mostra_pilha ( pilha ); } /* fim do main */
void main() { char aux; pilha *P, *L; pilha pilha_real; P=&pilha_real; char vetor[]="abcdefghijlmnopqrst"; int tam, i; inicializa_pilha(P); inicializa_pilha(L); tam=(int)sizeof(vetor)/sizeof(char); for(i=0; i<tam; i++) push(vetor[i], P); ler(P, aux); mostra_pilha(P, L); getch(); }