Datové struktury I - NTIN066 - ZS 2015/2016 - 2. úkol

Termín odevzdání: 17. listopadu 2015.
Způsob odevzdání: Odesláním v příloze emailem na ds1@kam.mff.cuni.cz.

Pravidla

Popis problému

Naprogramujte reprezentaci množiny pomocí (2,3)-stromů a (2,4)-stromů. Prvky množiny budou kladná 31-bitová čísla, uložená ve všech vrcholech stromu (nejen v listech).

Prozkoumejte chování obou datových struktur na testovacích datech vygenerovaných níže popsaným programem. Testovací data obsahují množiny různých velikostí se dvěma typy operací:

Pro každý test změřte následující veličiny:

Pro každý typ testu (rovnoměrný/nevyvážený) nakreslete graf závislosti počtu přístupů a počtu modifikací na velikosti množiny (dvě křivky pro (2,3)-stromy, další dvě pro (2,4)-stromy). Pokuste se zdůvodnit rozdíly mezi chováním obou stromů.

Generování dat

Stáhněte si generátor, případně použijte už zkompilovaný /afs/ms.mff.cuni.cz/u/b/babkm5am/ds1/hw2/abgen v unixové laboratoři Rotunda. Spusťte ho s následujícími parametry:

Výstupem generátoru bude textový soubor, každý řádek popisuje jednu operaci na stromu:

Na jedno spuštění generátor vytvoří sadu testů o velikostech cca 1000 až 1000000 prvků. Pokud chcete při ladění vyrobit jiný test, použijte parametr -n N pro nastavení velikosti množiny.

Příklad vstupu

# 5
I 67
I 45
D 67
I 81

Odevzdáni

Pošlete e-mail s předmětem tvaru 'HW2-55973318' (t.j. HW2-studentské číslo) s těmito přílohami:

Tělo e-mailu nechť obsahuje údaje podle tohoto vzoru:

Jmeno: Martin Mareš
Pseudonym pro vysledky na webu: Tomáš Marný
Cviceni: pondeli-12:20-lichy