MC102:
Algoritmos e Programação de Computadores - Turmas K e L
Zanoni Dias
(PED)
Nono Exercício
de Laboratório
Lista Ligada
O objetivo deste laboratório é a implementação de um programa para manipulação de conjuntos de inteiros, através de listas ligadas ordenadas. Você deve usar a seguinte declaração para o tipo básico dos conjuntos:
type Ponteiro = ^Elemento;
Elemento =
record
info: Integer;
proximo:
Ponteiro;
End;
Você deve usar o esboço disponível na página do curso em:
http://www.ic.unicamp.br/~zanoni/mc102/Documentos/Laboratorio-09.pas
e implementar as seguintes rotinas (e eventualmente outras auxiliares que você julgue necessário):
·
procedure Insere(var conjunto: Ponteiro; x: Integer);
Insere o inteiro 'x' no conjunto dado, de tal forma que a lista se mantenha ordenada.
·
procedure Remove(var conjunto: Ponteiro; x: Integer):
Boolean;
Remove, caso exista, o elemento 'x' do conjunto.
· procedure Imprime(conjunto: Ponteiro);
Imprime todos os elementos do conjunto, em ordem crescente, um por linha.
· procedure RemoveTudo(var conjunto: Ponteiro);
Remove todos os elementos do conjunto.
Observações: Você não deve usar nenhuma estrutura de dodos de alocação estática (arrays ou matrizes, por exemplo). Os conjuntos devem ser mantidos ordenados (ordem crescente). Faz parte do exercício entender e comentar o programa principal do esboço, bem como criar entradas de teste apropriadas (para facilitar, crie arquivos com os testes). A medida do possível tente fazer implementações recursivas.
Entrega
O programa é estritamente individual e deverá ser entregue até no máximo domingo, dia 07 de janeiro, através da Web Page do curso (www.ic.unicamp.br/~zanoni/mc102). Maiores detalhes serão discutidos em sala de aula e no laboratório.