Implementação de Pilha

716 palavras 3 páginas
Trabalho 2: Implementação de Pilha.

1. Objetivo
O objetivo do trabalho é estudar a forma de implementar a estrutura de dados - Pilha. Uma pilha segue o principio de Last In, First Out, ou seja, o último a entrar é o primeiro a sair. Iremos implementar o TAD pilha com alocação seqüencial e estática, isto é, a pilha será guardada em lugares selecionados da memória e em sequência.

2. Funções da Pilha
A estratégia utilizada para a implementação da pilha foi assistir várias vídeos aulas no Youtube. Pudemos perceber algumas funções primitivas como push (empilhar), pop (desempinhar), peek (topo) e outras funções também importantes como criaPilha, imprimePilha e liberaPilha. Vamos fazer um pararelo entre estas principais funções (TAD) e seus respectivos códigos em C:

TAD
Código C

Pilha.Empilha (QualPilha, QualElemento, DeuCerto? ) int push (pPilha p, int val){ if (p==NULL) return -1; if (p->topo >= 9) return -1; (p->topo)++; p->valor[p->topo]=val; return 1;
}

Pilha.Desempilha( QualPilha, QualElemento, DeuCerto? ) int pop (pPilha p, int *res){ if (p==NULL) return -1; if (p->topo < 0) return -1; *res = p->valor[p->topo]; p->topo --; return 1;
}

Pilha.Cria( QualPilha ) pPilha criaPilha() { pPilha p = (pPilha) malloc (sizeof(tPilha)); p->topo = -1; return p;
}

Pilha.Topo(QualPilha) int peek(pPilha p) { return p->valor[p->topo];
}

Pilha.Imprime?( QualPilha ) void imprimePilha (pPilha p) { if (p==NULL) { printf ("Pilha vazia!\n"); return; } printf ("Numero de elementos na pilha: %d\n", p->topo + 1); int i; for (i= p->topo ; i >=0 ; i--) { printf ("pilha [%d] = %d\n", i, p->valor[i]); }
}

Pilha.Libera (Qual Pilha) void libera(pPilha p) { int i; for (i=0 ; i < p->topo ; i++) { free(p->valor[i]); }

Relacionados

  • Pilha ling c
    652 palavras | 3 páginas
  • Estrutura de Dados Pilha Fila Lista
    4767 palavras | 20 páginas
  • Pilhas C++
    1680 palavras | 7 páginas
  • Pilhas
    1715 palavras | 7 páginas
  • pilha c#
    1003 palavras | 5 páginas
  • Pilhas, Alocação Sequencial e Estática
    5370 palavras | 22 páginas
  • Estrutura de dados
    1410 palavras | 6 páginas
  • Pilhas
    1144 palavras | 5 páginas
  • Pilha
    361 palavras | 2 páginas
  • estrutura de dados
    8020 palavras | 33 páginas