Respostas de Banco de Dados
Instituto de Informática
Algoritmos e Estruturas de Dados II
Prof. Eduardo Augusto Bezerra
Data: 29/04/96 Lista de Exercícios 3 - Filas e Pilhas 1 - Escreva algoritmos para gerência de pilhas, considerando implementação de pilhas em listas lineares contíguas. Escrever algoritmos para inclusão (push), exclusão (pop) e consulta de elementos nas pilhas. Escrever também algoritmos para verificar se as pilhas estão cheias ou não e para listar todos os elementos componentes das pilhas. Utilizar as seguintes definições (considerar uma pilha com no máximo 1000 elementos): Const
TAM = 1000;
Tipos
vpilha = vetor[1..TAM] de inteiro;
Var
vp: vpilha; topo: inteiro; /* Retorna FALSO se existe espaço para inclusão, e VERDADEIRO caso a pilha esteja cheia */ função PilhaCheia;
Var
aux: lógico;
Início
aux = FALSO;
Se topo = TAM Então
Escreva ('Pilha cheia !'); aux = VERDADEIRO;
Fim-Se
Retorne aux;
Fim.
/* Retorna VERDADEIRO se a pilha está vazia, e FALSO caso contrário */ função PilhaVazia;
Var
aux: lógico;
Início
aux = FALSO;
Se topo = 0 Então
Escreva ('Pilha vazia !'); aux = VERDADEIRO;
Fim-Se
Retorne aux;
Fim.
/* Insere elementos em uma pilha: retorna VERDADEIRO se conseguiu empilhar, FALSO caso contrário */ função Push (Var dado: inteiro);
Var
aux: lógico;
Início
aux = Não PilhaCheia();
Se aux Então topo = topo + 1; vp[topo] = dado;
Fim-Se
Retorne aux;
Fim.
/* Retira elementos de uma pilha: retorna VERDADEIRO se conseguiu desempilhar, FALSO caso contrário */ função Pop (Var dado: inteiro);
Var
aux: lógico;
Início
aux = Não PilhaVazia();
Se aux Então dado = vp[topo]; topo = topo - 1;
Fim-Se
Retorne aux;
Fim.
/* Realiza consulta ao topo da pilha: retorna VERDADEIRO se conseguiu consultar, FALSO caso contrário */ função Consulta (Var dado: inteiro);
Var
aux: lógico;
Início
aux = PilhaVazia();
Se aux Então dado = vp[topo];
Fim-Se