Ir para conteúdo
Fórum Script Brasil

wnv44

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Tudo que wnv44 postou

  1. wnv44

    Pilha sequencial

    Boa noite, Estou precisando de uma ajuda ai galera, preciso fazer uma lista sequencial, e está dando erro na minha função empilhar, estou usando codeblocks, se alguém puder me ajudar agradeço. #include <stdio.h> #define TRUE 1 #define FALSE 0 #define MAX 50 typedef struct { int conteudo; } Dados; typedef struct { Dados dados[MAX]; int topo; int base; int lim; } Pilha; Pilha pilha; Dados dados; void inicializar(Pilha pilha); int estaVazia(Pilha pilha); void empilhar(Pilha pilha, Dados dados); int main() { int num; inicializar(pilha); do { printf("\n1 - Inserir novo nodo \n2 - Remover nodo \n3 - Consultar nodo \n4 - Alterar nodo \n5 - Destruir pilha \n0 - Sair \n"); scanf("%d", &num); switch (num) { case 1: { int val; printf("\nInforme o valor:"); scanf("%d", &val); dados.conteudo = val; empilhar(pilha, dados); break; } /* case 2: { lst_imprime(m); break; } case 3: { int aux; mercado* mer; printf("\nQual codigo deseja buscar?\n"); scanf("%d", &aux); mer = busca(m, aux); printf("\nCodigo = %d Valor = %0.2f Nome do produto: = %s\n", mer->codigo, mer->valor, mer->produto); break; } case 4: { int aux; printf("\nDeseja retirar qual codigo?\n"); scanf("%d", &aux); m = lst_retira(m, aux); break; } case 5: { m = lst_libera(m); break; }*/ } } while (num != 0); return 0; } void inicializar(Pilha pilha) { pilha.base = 0; pilha.topo = pilha.base - 1; pilha.lim = MAX; } int estaVazia(Pilha pilha) { if (pilha.topo == NULL) return TRUE; else return FALSE; } void empilhar(Pilha pilha, Dados dados) { if (pilha.topo < pilha.lim) { pilha.topo = pilha.topo + 1; pilha[pilha.topo] = dados; } else printf("Pilha esta cheia!"); } /* int desempilhar(TipoPilha *pilha) { TipoNodo *nodo_que_sai_topo; int valor_nodo_que_sai_topo; if (estaVazia(pilha)) { printf("Lista Vazia !!!"); return 0; } else { nodo_que_sai_topo = pilha->topo; pilha->topo = nodo_que_sai_topo->link; valor_nodo_que_sai_topo = nodo_que_sai_topo->conteudo; free(nodo_que_sai_topo); pilha->tam--; return valor_nodo_que_sai_topo; } } int imprimir(TipoPilha *pilha) { TipoNodo *paux; paux = pilha->topo; printf("PILHA ATUAL\n"); while (paux) { printf("%d\n", paux->conteudo); paux = paux->link; } } */
×
×
  • Criar Novo...