Najneskorší termín odovzdania: 10.3.2013 (nedeľa) o 21:00
Odovzdávaný súbor: SpajanyZoznam.java
Doplňujúce požiadavky:
Obe metódy musia pracovať v čase O(n), kde n je počet hodnôt (uzlov) v spájanom zozname. Ak metódy budú potrebovať viac ako jeden prechod spájaným zoznam, bodový zisk bude znížený o 30%.
Chvostom spájaného zoznamu nazveme takú najdlhšiu možnú sufixovú podpostupnosť (=súvislá podpostupnosť prvkov v zozname končiaca v poslednom prvku zoznamu), ktorá je tvorená len rovnakými hodnotami. Príklady:
[3, 2, 3, 1, 1, 1, 1]
sú chvostom posledné 4 prvky s hodnotou 1,
[8, 8, 4, 1, 3, 3]
sú chvostom posledné 2 prvky s hodnotou 3,
[5, 5, 5]
sú chvostom všetky prvky zoznamu (tie majú hodnotou 5),
[4, 2, 5]
má chvost dĺžku 1 a je tvorený len posledným prvkom s hodnotou 5.
Do triedy SpajanyZoznam
pridajte metódu vlozPredChvost(hodnota)
, ktorá do spájaného zoznamu pridá zadanú hodnotu pred prvý prvok chvostu, resp. na začiatok zoznamu, ak je zoznam prázdny.
Príklady:
[3, 2, 3, 1, 1, 1, 1]
po volaní vlozPredChvost(9)
vznikne zoznam s hodnotami [3, 2, 3, 9, 1, 1, 1, 1]
,
[]
po volaní vlozPredChvost(9)
vznikne zoznam s hodnotami [9]
,
[3, 1]
po volaní vlozPredChvost(9)
vznikne zoznam s hodnotami [3, 9, 1]
.
Do triedy SpajanyZoznam
pridajte metódu odstranZaporne()
, ktorá zo spájaného zoznamu odstráni všetky uzly so zápornou hodnotou. Vzájomné poradie ostatných uzlov (hodnôt) v zozname musí ostať zachované.
Príklady:
[-4, -6, 5, -5, -6, 8, 5, -9, -8]
po volaní odstranZaporne()
vznikne zoznam s hodnotami [5, 8, 5]
,
[5, 6, 9, -3, -6, -9, -3, 9]
po volaní odstranZaporne()
vznikne zoznam s hodnotami [5, 6, 9, 9]