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í i na vzdálenější prvky než jsou prvky bezprostředně následující. Tyto ukazatele "přeskakují" položky seznamu, odtud skiplist.

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