[ED184] TAD Conjunto (IntSet)


Neste problema deverá apenas submeter uma classe MyIntSet (e não um programa completo).

O problema

A sua tarefa é criar uma classe MyIntSet, que representa um conjunto de números inteiros, implementando o seguinte interface:

// Interface que define o TAD conjunto de números inteiros
public interface IntSet {
   public boolean contains(int x); // Retorna true se x está no conjunto
   public boolean add(int x);      // Adiciona x ao conjunto
   public boolean remove(int x);   // Remove x do conjunto
   public int     size();          // Retorna o numero de elementos do conjunto
   public void    clear();         // Limpa o conjunto (torna-o vazio)
}

Um exemplo de utilização seria:

public class TestSet {
   public static void main(String[] args) {
      IntSet s = new MyIntSet(); // Chama o construtor padrão

      s.clear();
      System.out.println(s.size());      // Escreve "0"
      
      System.out.println(s.add(1));      // Escreve "true"
      System.out.println(s.add(5));      // Escreve "true"
      System.out.println(s.add(7));      // Escreve "true"
      System.out.println(s.add(1));      // Escreve "false"
      System.out.println(s.size());      // Escreve "3

      System.out.println(s.remove(5));   // Escreve "true"
      System.out.println(s.remove(5));   // Escreve "false"
      System.out.println(s.size());      // Escreve "2"

      System.out.println(s.contains(1)); // Escreve "true"
      System.out.println(s.contains(2)); // Escreve "false"

      s.clear();
      System.out.println(s.size());      // Escreve "0"
   }
}

Input e Output

Deverá apenas submeter a classe MyIntSet. O Mooshak irá criar várias instâncias da sua classe usando o construtor padrão (como mostrado no exemplo de utilização) e irá fazer uma série de testes aos métodos por si implementados.

É garantido que o conjunto nunca terá mais do que 100 números diferentes, e que todos os números serão inteiros positivos entre 1 e 1000 (inclusive).


Última actualização: