Rozšířený seznam odkazů

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 17. ledna 2019; ověření vyžaduje 1 úpravu .

Expanded linked list  - seznam , jehož každý fyzický prvek obsahuje několik logických prvků (obvykle ve formě pole, což umožňuje rychlejší přístup k jednotlivým prvkům).

Umožňuje výrazně snížit spotřebu paměti a zvýšit výkon oproti běžnému seznamu. Obzvláště velké úspory paměti je dosaženo malou velikostí logických prvků a jejich velkým počtem - například jednotlivě propojený seznam 10 tisíc čtyřbajtových celých čísel se čtyřbajtovým adresováním paměti zabere 40 tisíc bytů pro skutečné hodnoty, plus 40 tisíc bajtů pro adresy, celkem 80 tisíc bajtů; pokud spojíte čísla do 100 polí po 100 prvcích, spotřeba paměti pro adresy klesne na 400 bajtů a celková spotřeba bude 40 400 bajtů.

Zvýšení výkonu je dosaženo díky skutečnosti, že většina operací se provádí na relativně malých polích, která se obvykle celá vejdou do mezipaměti . Díky tomu může být výkon programu ještě vyšší než při práci s klasickými poli. Je snadné přidávat nové prvky do rozšířeného seznamu, aniž byste museli přepisovat celé pole, což je při práci s běžnými poli velký problém.

Při implementaci musíte pečlivě zvolit velikost „bloku“ (počet prvků v polích). Pokud je velikost bloku příliš velká, seznam začne trpět stejnými problémy jako běžné pole: dlouhé vkládání prvků na začátek nebo doprostřed, dlouhé odstraňování prvků odtud atd. Pokud je příliš malý, zvyšuje se spotřeba paměti .

Viz také

Odkazy