Fronta a zásobník

= způsoby dočasného uložení dat v rámci programu

Základní funkce obou

push(co) - slouží k vložení dat

pop() nebo také pull() - slouží k získání dat, které jsou právě na řadě

Fronta

(anglicky queue)

Funguje na principu FIFO (first in first out), to znamená, že si frontu můžeme představit třeba jako frontu na úřadu práce. Lidé (data), kteří příjdou dříve, přijdou na řadu první(jsou vrácena dříve).

Metody Implementace

Pomocí statického pole

Řešení pomocí statického pole funguje tak, že si vytvoříme pole a v rámci funkce push dáváme data do pole a ve funkci pop vždy vezmeme první položku a ostatní posuneme o jedno místo dopředu.

Nevýhodou tohoto způsobu implementace je, že jsme omezení velikostí námi vytvořeného pole. Výhodou tohoto řešení je, že vždy za všech okolností víme, kolik nám zbývá místa na další data.

Pomocí ukazatelů

Metodu řešení pomocí ukazatelů můžete vidět na níže uvedeném diagramu. Výhoda tohoto řešení je zároveň i jeho nevýhodou, jsme totiž schopni přidávat do fronty příspěvky dokud máme místo v paměti, nevýhodou je, že při špatné implementaci může dojít k** přehlcení nebo až přetečení paměti**, což může vést k nestabilitě systému.

Zásobník

(anglicky stack)

Funguje na principu LIFO (last in first out), to znamená, že funguje stejně jako zásobník v samopalu. Při nabíjení samopalu (vkládání dat) skládáme vždy náboje na spodek zásobníku a vršíme je na sebe, při výstřelu (výběr dat) se náboje berou odvrchu, z toho plyne, že poslední vložený je první vystřelený.

Metody Implementace

Pomocí statického pole

Řešení zásobníku pomocí statického pole je stejné jako u fronty, jediný rozdíl je v tom, že si v další proměnné musíme držet index posledních vložených dat a při zavolání funkce pop() vezmeme data z indexu posledních vložených data a index snížíme o jedna.

Výhody a nevýhodu jsou stejné jako u fronty.

Pomocí ukazatelů

Řešení pomocí ukazatelů je také podobné jako u fronty, znázroněné ho máte na diagramu níže.

Výhody a nevýhodu jsou stejné jako u fronty.