Sistema de informação

340 palavras 2 páginas
/* * Pilha * */ #include #include #include

com alocação dinâmica de memória

//TAD personalizado typedef struct no No; typedef struct pilha Pilha; //Assinaturas dos métodos Pilha* cria(void); void push(Pilha* p, float v); float pop(Pilha* p); int vazia(Pilha* p); void libera(Pilha* p); //Criar a estrutura da pilha struct pilha { No* topo; }; //Criar a estrutura dos nós da pilha struct no { float valor; struct no* proximo; }; /* * Definir as funções BASICAS que compõe a pilha * cria - Criar a pilha e inicializar as variáveis * push - Empilha um valor no topo na pilha * pop - Desempilha um valor do topo da pilha * */ Pilha* cria(void) { Pilha* p = (Pilha*) malloc(sizeof(Pilha)); //Inicializa pilha com alocação dinâmica de memória p->topo = NULL; //Inicializa pilha com o primeiro elemento NULL return p; } void push(Pilha* p, float v) { No* no = (No*) malloc(sizeof(No)); //Aloca o tamanho de um Nó na memória no->valor = v; //Atibui um valor para o nó no->proximo = p->topo; //O elemento atual na pilha se torna o segundo elemento p->topo = no; //O novo valor se torna o topo da pilha } float pop(Pilha* p) { float valor; if (vazia(p)) { printf("Pilha vazia.\n"); exit(1); //Sai do programa } valor = p->topo->valor; //Recupera o valor do nó no topo da pilha No* no = p->topo->proximo; //Recupera o próximo nó free(p->topo); //Apaga o topo da pilha p->topo = no; //O "próximo" nó se torna agora o topo da pilha return valor; //Retorna o valor do topo antigo } int vazia(Pilha* p) {

return (p->topo == NULL); } void libera(Pilha* p){ //Libera a memória. Paga os nós e a pilha No* no = p->topo; while (no != NULL) { No* proximo = no->proximo; free(no); no = proximo; } free(p); } void imprime(Pilha* p) { //Imprime a pilha No* no; for(no = p->topo; no != NULL; no = no->proximo) printf("%f\n", no->valor); } int main() { //Teste da pilha Pilha* minhaPilha = cria(); push(minhaPilha, 9.5); push(minhaPilha, 7.0); push(minhaPilha, 4.3); pop(minhaPilha); imprime(minhaPilha);

Relacionados

  • Sistemas de Informacao
    1276 palavras | 6 páginas
  • Sistemas de informaçao
    2379 palavras | 10 páginas
  • sistema de informaçao
    2489 palavras | 10 páginas
  • sistema de informação
    5179 palavras | 21 páginas
  • Sistema de informaçao
    4961 palavras | 20 páginas
  • Sistemas de Informação
    1149 palavras | 5 páginas
  • Sistemas de informaçao
    2520 palavras | 11 páginas
  • Sistema de Informaçaõ
    1172 palavras | 5 páginas
  • Sistemas de Informação
    2011 palavras | 9 páginas
  • Sistema de informação
    1062 palavras | 5 páginas