- commons-math3-3.6.1
- jmh-core-1.22
- jmh-generator-annprocess-1.22
- Hamcrest 1.3
- JUnit 4.12
Šita repositorija turi P175B014 Duomenų struktūros 4th semestro užduoti ,tiksliau modulio kursinis projektas kurio pagrindinis tikslas įgyvendinti pasirinkta duomenu struktūra. Konkreti duomenų struktūra pasirinkta įgyvendinti Unrolled Linked List.
- Išmokti kurti naujas bendro naudojimo duomenų struktūrų klases pagal duotą (pasirinktą) ADT aprašą;
- Įtvirtinti projektavimo, programavimo, testavimo ir tyrimo procesų žinias;
- Išmokti kurti programinės įrangos dokumentaciją;
- Pateikiamas visas programinis projektas ir ataskaitos elektroninė versija;
- Pademonstruojamas sukurto projekto veikimas.
- Atsakoma į klausimus apie programinės įrangos struktūrą, metodus, sprendimo pasirinkimo motyvus.
- pasirinktos duomenų struktūros interfeiso aprašas;
- interfeisą realizuojanti klasė;
- tos klasės testavimo arba demonstracinė klasė;
- efektyvumo tyrimas (greitaveika / atminties sąnaudos);
- demonstracinis prasmingo taikymo varijantas.
Unrolled Linked List iš esmės veikia labai panašai į paprasta Linked List, tačiau List node vietoj vieno elemento turi turi masyva, taip sujungumia Linked List ir Array privalumai. Pati ideja, kad visa node galima ideti i cache ir taip greiciau vyksta jieskojimas.
Unrolled Linked List balansuojasi add ir remove metu. Toliau pavizdys pridejimo metu veikimo.
{}
{[1]}
{[1, 2]}
{[1, 2, 3]}
{[1, 2, 3, 4]}
{[1, 2], [3, 4, 5]}
{[1, 2], [3, 4, 5, 6]}
{[1, 2], [3, 4], [5, 6, 7]}
{[1, 2], [3, 4], [5, 6, 7, 8]}
toliau pavizdys jeigu pašalintume 3 o poto 4.
{[1, 2], [4, 5, 6], [7, 8]}
{[1, 2], [5, 6], [7, 8]}
- Linked List veikia O(n) priejimu. Turint nodes masyvus vietoj vienatiniu objekto sumažina procesu kaina.
- Taip pat sumažėją atminties naudojamas kiekis palyginus su tradiciniu Linked List.