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.
Zásobník patří mezi abstraktní datové struktury. U abstraktních datových struktur definujeme
jen jejich vlastnosti a operace, nezabýváme se přitom jejich implementací. Pokud bychom
zásobník v praxi potřebovali implementovat, nejsnadnější je to pomocí pole. Začátek pole bude
tvořit dno zásobníku, poslední zaplněný prvek pole bude vrcholem zásobníku. Jediným
problematickým rysem zde může být stanovení velikosti pole tak, aby nedošlo k přeplnění
zásobníku.
Jméno pole, kterým budeme implementovat zásobník, zvolme z a předpokládejme, že je
indexováno od 0 (hodnota indexu prvního prvku v poli je 0). Dále nechť n označuje velikost
pole (počet prvků v poli) a proměnná i reprezentuje index prvku, který tvoří vrchol zásobníku.
Operace budou:
Počáteční nastavení prázdného zásobníku:
i = -1;
Zásobník lze
vytvořit pomocí
pole.
− 14 −
Operaci přidání datového prvku na zásobník ukazují následující příkazy. Nejprve ověříme, zda
zásobník není již zaplněn.
if (i==n-1) { /* zásobník je plný, nutno něco s tím udělat */ }
else
{ i = i+1;
z[i] = datový_prvek; }
Další příkazy ukazují operaci odebrání datového prvku ze zásobníku a jeho uložení do nějaké
proměnné. Nejprve ale ověříme, zda vůbec nějaký prvek je na zásobníku uložen.
i
f (i==-1) { /* zásobník je prázdný, nelze z něho odebrat */ }
else
{ proměnná = z[i];
i=i-1; }
Test, zda zásobník je prázdný, je zde uveden jakou součást operace odebrání prvku ze
zásobníku. Někdy v popisech zásobníku bývá tento test uváděn jako další, samostatná operace
nad zásobníkem.