int main () { char expressao[10000]; char *pega; PILHA_DINAMICA *pilha = criar_pilha(); fgets(expressao,10000,stdin); MostrarPilha(pilha); pega = strtok(expressao, " "); while(pega!=NULL) { if(*pega== 'C') { clear(&pilha); } else identifica(pilha,pega); MostrarPilha(pilha); pega = strtok(NULL, " "); } //system("PAUSE"); }
//funcao principal //aqui serão feitas as intervenções com io usuário int main () { pilha p;//cria uma pilha chamada "p" vazia p = criar_pilha();//define a estrutura de "p" e aplica p.topo=N-1 (contido em Criar_Pilha) char nomes[50]; //string para receber o que o usuário digita while (pilha_cheia(p)==false)//enquanto a pilha não estiver cheia faça(...) { printf ("Digite um nome: "); scanf("%s", nomes); push(p,nomes); /*leva para empilhar "p" e "nomes", que na função "Push" recebe o nome de "val"*/ } //desempilhando while (pilha_vazia(p)==false) { //consulta a pilha top(p,nomes); printf("Vou desempilhar: %s\n", nomes);//exibe o nome desempilhado pop(p);//desempilha 1 //o "p.topo" mostra o valor atual do índice } system("Pause"); }
int main( ) { PILHA_DINAMICA *pilha = (PILHA_DINAMICA*)malloc(sizeof(PILHA_DINAMICA)); criar_pilha(pilha); char entrada[1]; int controle = 1, n1=0, n2=0, resultado=0; while(entrada[0] != 'q') { fgets(entrada,10,stdin); if(entrada[0] >= '0' && entrada[0] <= '9') { if (pilha->topo==NULL) puts("-"); pilha->topo->item += ( (controle)*(entrada[0]) ); } switch(entrada[0]){ case 'E': push(0,pilha); controle=1; break; case '+': pop(&n1,pilha); pop(&n2,pilha); resultado = n1+n2; push(resultado,pilha); controle=1; break; case '-': pop(&n1,pilha); pop(&n2,pilha); resultado = n1-n2; push(resultado,pilha); controle=1; break; case '*': pop(&n1,pilha); pop(&n2,pilha); resultado = n1*n2; push(resultado,pilha); controle=1; break; case '/': pop(&n1,pilha); pop(&n2,pilha); resultado = n1/n2; push(resultado,pilha); controle=1; break; } controle *= 10; imprimir_pilha(pilha); } return 0; }