A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Désiré NGuessan Programação II Estruturas de Dados

Apresentações semelhantes


Apresentação em tema: "Désiré NGuessan Programação II Estruturas de Dados"— Transcrição da apresentação:

1 Désiré NGuessan Programação II Estruturas de Dados

2 Désiré NGuessan Pilha: Pilha: Implementação de pilha com Lista encadeada (alocação dinâmica)... O endereço de uma lista encadeada é o endereço da seu primeiro nó

3 Désiré NGuessan Pilha: Implementação Continuação A lista ligada ou encadeada é uma seqüência de nós ou células onde: Cada nó contem: –dado de algum tipo –Endereço do nó seguinte

4 Désiré NGuessan Pilha: Implementação Continuação Se P é o endereço de um nó, então: » P->conteudo é o conteúdo do nó » P->prox é o endereço do próximo nó conteúdo próximo

5 Désiré NGuessan Pilha: Implementação –Implementação de pilha com Vetor Definição das operações Pilha* pilha_cria(void); void pilha_push(Pilha* p, float v); float pilha_pop(Pilha* p); int pilha_Vazia(Pilha* p); void pilha_libera(Pilha* p);

6 Désiré NGuessan Pilha: Implementação Continuação –Implementação de pilha com Lista encadeada (alocação dinâmica) Definição da Estrutura de Dados da lista struct lista{ float info; struct lista* prox; }; typedef struct lista Lista;

7 Désiré NGuessan Pilha: Implementação Continuação –Implementação de pilha com Lista encadeada (alocação dinâmica) Definição da Estrutura de Dados do topo da pilha // topo da pilha struct pilha { Lista * topo; }; typedef struct pilha Pilha;

8 Désiré NGuessan Pilha: Implementação Continuação Criar a pilha Pilha* pilha_cria(void){ Pilha* P = (Pilha*) malloc(sizeof(Pilha)); P->topo = NULL; // inicializa como zero elemento return P; } P

9 Désiré NGuessan Pilha: Implementação Continuação Função Empilhar void pilha_push(Pilha* p, float v){ Lista* L = (Lista*) malloc(sizeof(Lista)); L->info = v; L->prox = p->topo; p->topo = L; }

10 Désiré NGuessan Função desempilhar float pilha_pop(Pilha* p){ float v ; Lista* T; if (pilha_vazia(p)){ printf(" pilha vazia.\n"); exit(1); // aborta o programa } // retira elemento do topo T= p->topo; v= T->info; p->topo = T->prox; free(T); // libera o nó T return v; }

11 Désiré NGuessan Pilha: Implementação Continuação Função testar pilha Vazia int pilha_vazia(Pilha* p){ return (p->topo == NULL); }


Carregar ppt "Désiré NGuessan Programação II Estruturas de Dados"

Apresentações semelhantes


Anúncios Google