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.
Vložit nový prvek na libovolné místo v seznamu je na rozdíl od pole poměrně jednoduché.
Vytvoříme nový uzel, do něho dáme přidávaný prvek, následně najdeme v seznamu místo
vložení, v předchozím uzlu ukazatel přesměrujeme na vkládaný nový uzel a ukazatel v novém
uzlu nastavíme na následující uzel v seznamu.
Odstranit prvek ze seznamu je ještě jednodušší. Ukazatel v předchozím uzlu přesměrujeme na
uzel, jež v seznamu následuje za uzlem s rušeným prvkem.
Zatím jsme spíše mluvili o výhodách seznamu. Nyní je čas podívat se na jeho nevýhody. Na
rozdíl od pole zde není přímý přístup k libovolnému uloženému prvku. U pole pokud víme, kde
je příslušný datový prvek uložen, poměrně snadno vypočítáme index a pomocí něho se
okamžitě dostaneme k danému prvku. V seznamu i když víme, v kterém jeho uzlu je daný
datový prvek uložen, nám to není nic platné. Nemáme k dispozici ukazatel na tento uzel. Máme
jen ukazatel na první uzel v seznamu. Nezbývá než projít postupně uzly seznamu od prvního
uzlu až k uzlu s požadovaným prvkem. Navíc pokud už v nějakém uzlu jsme a chceme třeba
přejít k prvku v předcházejícím uzlu, musíme opět začít seznam procházet od prvního uzlu,
protože v současném uzlu máme jen ukazatel na následující uzel, nikoliv na předchozí. tj.
seznam je běžně jen jednosměrný. Proto se někdy používá obousměrný seznam, který v uzlu má
dva ukazatele, jeden ukazuje na předchozí uzel a druhý na následující uzel. To umožňuje pohyb
po seznamu oběma směry.