Pesquisar na Comunidade
Mostrando resultados para as tags ''pilha linguagem c''.
Encontrado 1 registro
-
Alguém poderia me ajudar? Estou com um trabalho de Estrutura de dados para fazer, mas estou tendo muita dificuldade... Eu tentei fazer, mas não consigo concluir :/ Implemente uma função DecBin que faça uso da estrutura de pilha para efetuar a conversão de um valor decimal para binário. #include<stdio.h> #include<stdlib.h> #define MAXTAM 1000 typedef struct pilha1 { int Pilha [MAXTAM]; int Topo; }pilha1; void Pilha_Construtor(pilha1*p) { p->Topo = -1; //porque 0 é uma posição no vetor } int Pilha_Vazia(pilha1*p) //bool valor booleano, verdadeiro ou falso { if (p->Topo==-1) return 0; else return 1; } int Pilha_Push (pilha1*p, int valor) //Inserir { if (p->Topo==MAXTAM-1) { return 0; } else { p->Topo++; p->Pilha[p->Topo] = valor; return 1; } } int Pilha_Pop (pilha1*p, int valor) //Desempelhar, retirar elemento { if (p->Topo==MAXTAM-1 ) { return -1; } else { valor==p->Pilha[p->Topo]; p->Topo--; return p->Pilha[p->Topo+1]; } } int menu() { int op; printf("**** PILHAS ****\n\n"); printf("Escolha uma das opcoes\n"); printf("1.Empilhar\n"); printf ("2. Converter para binário \n"); printf("3.Sair\n"); printf("Opcao: "); scanf("%d",&op); return op; }// fim menu void DecBin(pilha1 *p, int valor) { Pilha_Construtor(p); int x; if (valor >= 2) { do{ x = valor % 2; Pilha_Push(p, x); valor =valor / 2; } while (valor >= 2); } x = valor % 2; Pilha_Push(p, x); int tam = p->Topo; for (int i = 0; i <= tam; i++) { printf (" %d ", Pilha_Pop(p)); } } main() { pilha1 pi; Pilha_Construtor(&pi); int valor,op; do { op = menu(); switch(op) { case 1: printf ("Valor a empilhar: "); scanf ("%d",&valor); if(Pilha_Push(&pi,valor)==1) printf ("Valor %d empilhado!", valor); else printf ("Pilha cheia!"); break; case 2: break; case 3: printf("Saindo....\n"); break; default: printf("Opcao invalida..."); } getch(); system("cls"); while(op!=2); } }