Seminář 7

Témata

Vnořené třídy

Ukázka

Úkoly

  1. Navrhněte vhodné rozhraní pro množinu čísel typu int. Pojmenujte jej IntegerSet.
  2. Implementujte množinu čísel typu int pomocí binárního vyhledávacího stromu. Stačí naivně, bez vyvažování. Třídu pojmenujte BSTSet.
  3. Dodaný IntegerLinkedList rozšiřte tak, aby implementoval dodaná rozhraní IntegerSequence a IntegerIterable.
  4. Implementuje třídu, jejíž instance reprezentují libovolnou podmnožinu množiny {1, 2, 3, …, 32} a to pomocí jediného čísla typu int. Tedy celý vnitřní stav této množiny musí být uchován v jednom intu. Pojmenujte ji CoolSet.
  5. Ujistěte se, že třídy z bodu 2 a 4 implementují Vaše rozhraní IntegerSet.
  6. Vše řádně zdokumentujte.
  7. Pro CoolSet napište vhodné testy.
  8. Výsledek odevzdejte emailem s předmětem jj1-07 na tomas.urbanec@upol.cz do 21.11.2023, 14:59 CEST. Odevzdávejte pouze zdrojové kódy, nikoliv celé projekty vygenerované IDE.

Nepovinné úkoly

Ideálně nad tím přemýšlejte až po naprogramování úkolů výše.

  1. Promyslete si vztah mezi frontou a seznamem z ukázky? Je dobře? Dokázali byste to udělat lépe?
  2. Co víte o zásobníku, stromu, hashovací tabulce, poli, …?
  3. Jak tyto struktury souvisí s množinou? A s obecnou kolekcí prvků?