Skip-list - použití a implementace

Z FAV wiki
Přejít na: navigace, hledání

Skiplist je alternativa ke stromům, která je snadno implementovatelná. Operace se skiplistem jsou podobné složitosti jako u stromů (O(n log n)), ale paměťová nárožnost může být o něco větší.

Skiplist si lze představit následovně Seznam, ve kterém některé prvky ukazují na více následující prvky, ktery na prvky, které jsou za prvky bezprostředně následujícími. Tyto ukazatele "přeskakují" položky seznamu, odtud skiplist Graf obsahující strom (lineární strom) a dopředné hrany, které "zkracují" cestu od kořene k prvku, případně od prvku k prvku

Maximální výška uzlu = Maxlevel, každý prvek může mít 1<k<Maxlevel ukazatelů na další prvky


Skip-list.jpg


Popisky (obrázek je z přednášky):

Výhody:

Nevýhody:

Řešení: skiplist s náhodnými velikostmi uzlů. Potom:

Tento skip-list není zcela log n, a nelze (díky náhodnosti) jeho složitost určit. S vysokou pravděpodobností však všechny operace budou rychlejší než O(n) (samozřejmě můžeme mít smůlu a všechny prvky budou náhodně výšky 1).


Osobní nástroje
Jmenné prostory
Varianty
Akce
Navigace
Nástroje