Estrutura de Dados I Prof: Alex Sandro C. Rêgo

Disciplina:Estrutura de Dados Professor:Alex Sandro da C. Rêgo URL : w.alex.buscapb.com.br/ed1

Aluno:

Pilha Encadeada

Observações: *Otrabalho deverá ser entregue em disquete ou por e-mail: alexscunha@yahoo.com.br

*Ocódigo fonte deverá ser devidamente indentado e comentado de forma que facilite a leitura e compreensão.

*Grupo de 2 pessoas.

Objetivo: *Implementar uma pilha dinâmica (simplesmente encadeada) e suas principais operações

1) Desenvolva um programa em C com as principais operações de uma pilha utilizando encadeamento. As operações devem obedecer os seguintes protótipos e definições

char dado[5];// informacao do no

// Definicao de um no da pilha typedef struct stnopilha{ struct stnopilha* prox; // ponteiro para o proximo no }no; typedef no* pilha; void criapilha(pilha *p); int pilhavazia(pilha p); int empilha(pilha *p, char *valor); int desempilha(pilha *p, char *valor); int elementotopo(pilha p, char *valor); int imprime(pilha p); int tamanho(pilha p);

Dicas: •Considere a pilha como uma lista simplesmente encadeada em que toda a operação de empilhamento faça com que seja criado um nó no início da pilha. Portanto, a pilha sempre vai apontar para o elemento do topo. Lembre-se que toda a operação de desempilhamento também é realizada através do topo.Observe a ilustração:

•Implemente uma função pilha* criaNodo() para criar um nodo com alocação dinâmica. Ao invés de ficar sempre repetindo a instrução de malloc(), criaNodo() será sempre chamada para fazer esse papel.

2) Desenvolva uma função para retornar o sub-topo da pilha, sem desempilhar nenhum elemento. int subTopo(pilha p, char *valor);

7Lista

Estrutura de Dados I Prof: Alex Sandro C. Rêgo

3) Desenvolva uma rotina para desempilhar nelementos a partir do topo da pilha. int desempilhaN(pilha p);

4) Desenvolva uma rotina para desempilhar todos os elementos da pilha (esvaziar a pilha). void esvaziar(pilha *p);

5) Desenvolva uma rotina para retornar o elemento que está na base da pilha,sem desempilhar nenhum elemento. (Dica: use outra pilha auxiliar).

int base(pilha p);

6) Faça um programa que manipule uma pilha encadeada utilizando menu (Aproveite a estrutura do menu criado na lista de exercícios 6). Exiba as seguintes opções:

Editor de Pilha v2.0 ================ 1- Inicializar 2- Empilhar 3- Desempilhar 4- Elemento do topo 5- Imprimir pilha 6- Esvaziar a pilha 7- Base da pilha 8- Tamanho da pilha 9- Desempilha N elementos 10- Mostrar sub-topo

Digite sua opção: [ ]

Observações:

••••Oprograma deve fazer o tratamento para todas as operações de uma pilha. Não deixe que o usuário tente empilhar algum elemento sem que a pilha tenha sido inicializada;

••••Mostre mensagens quando algum alerta de pilha vazia ou cheia for emitido;

••••Ao exibir o elemento do topo, não desempilhe o conteúdo da pilha!!!!

••••Ao desempilhar um elemento da pilha, mostre o valor que estava no topo.

••••Oprograma deve ser de fácil utilização (Mostre sempre as mensagens para que o usuário saiba o que deve ser feito).

Comentários