Stack vs Queue
Zásobník je uspořádaný seznam, ve kterém lze vkládat a mazat položky seznamu pouze na jednom konci zvaném vrchol. Z tohoto důvodu je zásobník považován za datovou strukturu Last in First out (LIFO). Fronta je také uspořádaný seznam, ve kterém se vkládají položky seznamu na jeden konec nazývaný zadní a mazání položek se provádí na druhém konci nazývaném front. Tento mechanismus vkládání a mazání činí z fronty datovou strukturu First in First out (FIFO).
Co je Stack?
Jak již bylo zmíněno dříve, zásobník je datová struktura, ve které jsou prvky přidávány a odebírány pouze z jednoho konce zvaného vrchol. Zásobníky umožňují pouze dvě základní operace zvané push and pop. Operace push přidá nový prvek na vrchol zásobníku. Operace pop odstraní prvek z horní části zásobníku. Pokud je zásobník již plný, je při provádění operace push považován za přetečení zásobníku. Pokud je operace pop provedena na již prázdném zásobníku, považuje se za podtečení zásobníku. Vzhledem k malému počtu operací, které by mohly být provedeny na zásobníku, je považován za omezenou datovou strukturu. Kromě toho je podle způsobu, jak jsou definovány operace push a pop, zřejmé, že prvky, které byly přidány jako poslední do zásobníku, nejdřív vyjdou ze zásobníku. Zásobník je proto považován za datovou strukturu LIFO.
Co je fronta?
Ve frontě jsou prvky přidány ze zadní části fronty a odstraněny z přední strany fronty. Protože prvky, které jsou přidány jako první, budou nejprve odstraněny z fronty, udržuje pořadí FIFO. Kvůli tomuto pořadí přidávání a odebírání prvků představuje fronta myšlenku řádku pokladny. Obecné operace podporované frontou jsou operace ve frontě a ve frontě. Operace ve frontě přidá prvek v zadní části fronty, zatímco operace ve frontě odstraní prvek z přední strany fronty. Obecně fronty nemají limit na počet prvků, které mohou být přidány do fronty kromě omezení paměti.
Jaký je rozdíl mezi stackem a frontou??
Přestože jsou zásobníky i fronty druhem uspořádaných seznamů, mají některé důležité rozdíly. Ve svazcích lze přidávat nebo mazat položky pouze z jednoho konce zvaného horní, zatímco ve frontách se přidávání položek provádí z jednoho konce zvaného zadní a mazání položek z druhého konce zvaného přední strana. Ve svazku budou položky, které jsou přidány jako poslední do zásobníku, nejprve odebrány ze zásobníku. Zásobník je proto považován za datovou strukturu LIFO. Ve frontách budou položky, které jsou přidány jako první, odstraněny z fronty jako první. Proto je fronta považována za datovou strukturu FIFO.
Související odkaz:
Rozdíl mezi zásobníky a haldy