Você está na página 1de 2

Pontifı́cia Universidade Católica de Minas Gerais

Bacharelado em Sistemas de Informação


Algoritmos e Estruturas de Dados - 2009/2
Michelle Nery Nascimento

Aula Prática 5 - Semana: 08 a 11/09/2009


1. Implemente os métodos da classe Pilha conforme TAD a seguir:

class Pilha{
private int [20] item;
int numeroElementos;

public Pilha();
public void empilha(int x);
public bool desempilha();
public bool obtemElementoTopo();
public int obtemTamanho();
public bool vazia();
public bool procuraElemento(int x);
public void imprime();
}

• Construtor: inicializa Pilha como vazia.


• empilha(x): empilha x na Pilha.
• desempilha(): desempilha um elemento e retorna seu valor.
• obtemElementoTopo(): obtém o elemento que está no topo da pilhan sem desempilhá-lo.
• obtemTamanho(): retorna o número de elementos inseridos na Pilha.
• vazia(): retorna verdadeiro se a Pilha estiver vazia e falso caso contrario.
• procuraElemento(x): procura um elemento na pilha.Se encontrar, troca ele de lugar
com o elemento do topo e retorna verdadeiro. Caso não encontre, retorna falso.
• imprime(): mostra os elementos da Pilha a partir do topo até o elemento na base.

2. Escrever um método que faça uma pilha de S (objeto do tipo pilha) em ordem normal.

3. Escrever um método que faça uma pilha de S (objeto do tipo pilha) em ordem inversa.

4. Implemente os métodos da classe Fila conforme TAD a seguir:

class Fila{
private int [20] item;
private int n, frente;
int numeroElementos;
public Fila();
public void insere(int x);
public int retira();
public int obtemTamanho();

1
public bool vazia();
private void grow();
public void imprime();
}

• Construtor: inicializa Fila como vazia.


• insere(x): insere elemento x na Fila.
• retira(): retira um elemento da Fila e o retorna.
• obtemTamanho(): retorna o número de elementos inseridos na Fila.
• vazia(): retorna verdadeiro se a Fila estiver vazia e falso caso contrário.
• grow(): dobra o tamanho da Fila, copiando os elementos da fila original para a nova
fila.
• imprime(): mostra os elementos da Fila na ordem do Primeiro para o Ultimo.

5. Escrever um método que copia uma fila para outra fila e a fila de saı́da deve estar em ordem
invertida.

6. Escrever um método que copia uma fila para uma pilha em ordem normal.