BPC-ALD - Skripta_rev2019_2
Níže je uveden pouze náhled materiálu. Kliknutím na tlačítko 'Stáhnout soubor' stáhnete kompletní formátovaný materiál ve formátu PDF.
Pole je velmi
často
používaná
lineární datová
struktura.
− 11 −
hodnot budeme do pole ukládat, může se nám stát, že dojde k vyčerpání pole. To lze řešit
použitím tzv. dynamicky alokovaných polí, u nichž lze provést zvětšení jejich rozsahu. Nicméně
tato operace je typicky spojena s realokací paměti pro pole (umístění pole v jiné části paměti,
kde je volný prostor požadované velikosti) , což s sebou nese přesun již uložených hodnot v poli
na nové místo v paměti. To je časově poměrně náročná operace a proto se snažíme, aby ke
zvětšování pole docházelo co nejméně. Další nepříjemný problém nastává v případě, kdy
hodnoty máme v poli nějakým způsobem uspořádané a potřebujeme vložit další hodnotu tak,
aby uspořádání bylo zachováno. Tedy nikoliv na konec, ale někde mezi již uložené hodnoty.
V tom případě musíme všechny hodnoty od místa vložení posunout o jedno místo dozadu, aby
se uvolnilo místo pro nově vkládanou hodnotu, což je opět často časově náročné.
Obdobný problém nastane, pokud z pole odstraňujeme hodnotu, jež v něm není poslední. Pak
naopak hodnoty za ní musíme v poli posunout o jedno místo dopředu.
Pokud příslušný algoritmus vyžaduje častější provádění operací, které jsou v poli neefektivní
(zvětšení rozsahu, vládání doprostřed uložených hodnot, odstraňování z míst, jež jsou uprostřed
uložených hodnot), pak je účelnější pro uložení hodnot místo pole použít lineární dynamickou
datovou strukturu – seznam.