Skip to content

Pilha, com ponteiros, Estrutura de Dados.

Então, hoje vou demonstrar um dos outros exercicios que fizemos na aula de estrutura de dados, lembrando mais uma vez que estes são exercicios que eu faço rapidamente e não me importo muito com várias coisas pela falta de tempo. O que irei mostrar hoje é uma Pilha com vetores porém em vez de ele ter um inteiro indicando o ultimo elemento, o ultimo será um ponteiro para o ultimo elemento da pilha.

Para ver o enunciado inteiro continue lendo (enunciado grande).

Para baixar o arquivo, clique aqui!

Reimplemente o seu programa de pilha com vetor de números inteiros usando como TOPO um ponteiro para inteiro, que você incrementa, decrementa e testa
para saber se a pilha está cheia ou vazia;
• para resolver:
– modifique a estrutura tPilha da seguinte forma:
constantes MAXPILHA = 100;
tipo tPilha {
inteiro dados[MAXPILHA];
inteiro *topo;
};

• Modifique os algoritmos de manipulação da pilha de forma que se utilize ponteiros para inteiro para referenciar os elementos da pilha.
• Exemplo:
Inteiro FUNÇÃO empilha(inteiro dado)
início
SE (pilhaCheia) ENTÃO
RETORNE(ErroPilhaCheia)
SENÃO
// Se houver espaço, incremento o
// ponteiro topo e faço o valor
// apontado por topo receber o novo
// dado.
aPilha.topo <- aPilha.topo + 1; *(aPilha.topo) <- dado; RETORNE(aPilha.topo); FIM SE fim; • Lembre-se de adaptar a inicialização da pilha e também os testes de pilha cheia e vazia. Exemplos: FUNÇÃO inicializaPilha() início // Fazemos o topo apontar para um endereço de memória // anterior ao início do vetor dados para simbolizar // que a pilha está vazia. aPilha.topo <- aPilha.dados - 1; fim; Booleano FUNÇÃO pilhaVazia() início SE (aPilha.topo < aPilha.dados) ENTÃO // O topo está apontando para um endereço de // memória anterior ao próprio início da // pilha. Segundo a nossa definição, isto // significa que a pilha está vazia. RETORNE(Verdadeiro) SENÃO RETORNE(Falso); fim;

Published inAprendendoCEstrutura de Dados

Be First to Comment

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.