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.