O TAD Conjunto

Este trabalho visa implementar um Tipo Abstrato de dado (TAD) “conjunto de inteiros” usando um vetor de booleanos.

Você deve implementar um TAD “conjunto de números inteiros” usando um vetor de flags, de forma similar aos bitmaps.

Um bitmap, ou bit array, é um vetor de bits nos quais os índices representam números inteiros e os bits representam valores booleanos (verdadeiro/falso). Dado um conjunto C representado por um bitmap B, se “B[i] == true” então “i ∈ C”.

Como ainda não aprendemos como manipular bits individuais, neste projeto deve ser usado um vetor de valores booleanos para representar os bits.

As seguintes operações devem ser suportadas:

  • c = cria (conjunto): cria um novo conjunto
  • destrói (conjunto): destrói o conjunto
  • d = copia (conjunto): cria uma cópia do conjunto
  • c = aleat (…): cria um conjunto aleatório
  • insere (conjunto, item): insere um novo item no conjunto
  • retira (conjunto, item): retira o item do conjunto
  • card (conjunto): informa a cardinalidade (número de itens) do conjunto
  • pertence (conjunto, item): informa se o item pertence ao conjunto
  • igual (c1, c2): informa se o conjunto c1 é igual ao conjunto c2
  • contem (c1, c2): informa se o conjunto c1 contém o conjunto c2
  • união (c1, c2): calcula a união dos conjuntos c1 e c2 (c1 ∪ c2)
  • interseção (c1, c2): calcula a interseção dos conjuntos c1 e c2 (c1 ∩ c2)
  • diferença (c1, c2): calcula a diferença dos conjuntos c1 e c2 (c1 - c2)
  • imprime (conjunto): imprime o conteúdo do conjunto

Os arquivos necessários para desenvolver este trabalho estão neste arquivo. Eles são:

  • conjunto.h: arquivo de cabeçalho com os protótipos das funções (não deve ser alterado).
  • conjunto.c: arquivo que implementa as operações sobre os conjuntos (“esqueleto” a completar).
  • teste.c: código que testa a biblioteca (não deve ser alterado).
  • teste.txt: saída do código que testa a biblioteca.
  • makefile: arquivo do utilitário “make” para compilar seu código.

Entregue um único arquivo tp5.tgz contendo todos os arquivos do projeto.

Critérios de avaliação:

  • Funcionar corretamente m(
  • 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)
  • prog1/tad_conjunto.txt
  • Última modificação: 2024/10/19 10:42
  • por maziero