O TAD Lista
Este trabalho visa implementar um Tipo Abstrato de dado (TAD) “lista de inteiros” usando listas encadeadas.
Atividade
Você deve implementar um TAD “lista de números inteiros” usando lista encadeada dupla não-circular.
As seguintes operações devem ser suportadas:
cria (lista)
: cria uma nova listadestrói (lista)
: esvazia e destrói a lista, liberando a memóriainsere (lista, item, posição)
: insere um novo item na posição indicadaitem = retira (lista, posição)
: retira o item da posição indicadaitem = consulta (lista, posição)
: informa o valor do item na posição indicada, sem retirá-loposição = procura (lista, valor)
: informa a posição da 1ª ocorrência do valor informado na listatamanho (lista)
: informa o número de itens na listaimprime (lista)
: imprime o conteúdo da lista
A posição de inserção/remoção/consulta é um número inteiro positivo, onde 0 indica a primeira posição da lista.
Os arquivos necessários para desenvolver este trabalho estão neste arquivo. Eles são:
lista.h
: arquivo de cabeçalho com os protótipos das funções (não deve ser alterado).lista.c
: arquivo que implementa as operações sobre as listas (“esqueleto” a completar).tp4.c
: código que testa a biblioteca (não deve ser alterado).tp4.txt
: saída esperada da execução detp4
makefile
: arquivo do utilitário “make” para compilar seu código.
Você pode testar se a saída de seu programa está correta usando o comando
diff
:$ ./tp4 > saida.txt $ diff tp4.txt saida.txt
Esse comando mostra as diferenças entre dois arquivos de texto. Se ele não mostrar nada, os arquivos são iguais.
Entregáveis
Entregue um único arquivo tp4.tgz
que contenha por sua vez os seguintes arquivos:
lista.h
: o mesmo arquivo fornecido, não o modifiquelista.c
: sua implementação das funções definidas emlista.h
tp4.c
: o mesmo arquivo fornecido, não o modifiquemakefile
Critérios de avaliação:
- Funcionar corretamente
- Não ter problemas de memória (testar com Valgrind)
- Respeitar o conceito de TAD
- Usar funções para evitar repetição de blocos de código
- Respeitar estilo (endentação, espaçamento, nomes de variáveis)
- Usar comentários (nem demais, nem de menos)
- … (outros que se fizerem necessários)