Nejprve se podíváme na co je zásobník a co je fronta jednotlivě a poté probereme rozdíly mezi zásobníkem a frontou.
Co je zásobník?
Datová struktura. V případě pole je možný náhodný přístup, tj. ke kterémukoli prvku pole lze přistupovat kdykoli, zatímco v zásobníku je možný pouze sekvenční přístup. Je to kontejner, který se řídí pravidlem vkládání a mazání. Dodržuje princip LIFO (Last In First Out) ve kterém vložení a delece probíhají z jedné strany známé jako a horní . V zásobníku můžeme vložit prvky podobného datového typu, tj. různé prvky datového typu nelze vložit do stejného zásobníku. Tyto dvě operace se provádějí v LIFO, tj. TAM a pop úkon.
Následující operace lze provádět se zásobníkem:
V zásobníku, horní je ukazatel, který se používá ke sledování naposledy vloženého prvku. Pro implementaci zásobníku bychom měli znát velikost zásobníku. Potřebujeme alokovat paměť, abychom získali velikost zásobníku. Existují dva způsoby, jak implementovat zásobník:
Co je to fronta?
A
Podobnosti mezi zásobníkem a frontou.
Mezi zásobníkem a frontou jsou dvě podobnosti:
Zásobník i fronta jsou lineární datovou strukturou, což znamená, že prvky jsou ukládány sekvenčně a přístup k nim probíhá v jediném běhu.
Zásobník i fronta mají flexibilní velikost, což znamená, že se mohou zvětšovat a zmenšovat podle požadavků za běhu.
Rozdíly mezi zásobníkem a frontou
Zde jsou rozdíly mezi zásobníkem a frontou:
Základ pro srovnání | Zásobník | Fronta |
---|---|---|
Zásada | Řídí se principem LIFO (Last In- First Out), což znamená, že prvek, který se vkládá jako poslední, bude první, který bude odstraněn. | Řídí se principem FIFO (First In -First Out), což znamená, že prvek, který je přidán jako první, bude prvním prvkem, který bude odstraněn ze seznamu. |
Struktura | Má pouze jeden konec, ze kterého se uskutečňuje vkládání i mazání, a tento konec je známý jako vrchol. | Má dva konce, tedy přední a zadní konec. Přední konec se používá pro mazání, zatímco zadní konec se používá pro vkládání. |
Počet použitých ukazatelů | Obsahuje pouze jeden ukazatel známý jako horní ukazatel. Horní ukazatel obsahuje adresu posledního vloženého nebo nejvyššího prvku zásobníku. | Obsahuje dva ukazatele přední a zadní ukazatel. Přední ukazatel obsahuje adresu prvního prvku, zatímco zadní ukazatel adresu posledního prvku ve frontě. |
Provedené operace | Provádí dvě operace, push a pop. Operace push vloží prvek do seznamu, zatímco operace pop odebere prvek ze seznamu. | Provádí především dvě operace, zařazování do fronty a vyřazování z fronty. Operace zařazení do fronty provede vložení prvků do fronty, zatímco operace vyřazení z fronty provede odstranění prvků z fronty. |
Vyšetření prázdného stavu | Pokud je top==-1, znamená to, že zásobník je prázdný. | Pokud front== -1 nebo front = zadní+1, znamená to, že fronta je prázdná. |
Vyšetření plného stavu | Pokud top== max-1, tato podmínka znamená, že zásobník je plný. | Pokud zadní ==max-1, tato podmínka znamená, že zásobník je plný. |
Varianty | Nemá žádné typy. | Je tří typů, jako je prioritní fronta, kruhová fronta a fronta s dvojitým koncem. |
Implementace | Má jednodušší implementaci. | Má poměrně složitou implementaci než zásobník. |
Vizualizace | Stack je vizualizován jako vertikální kolekce. | Fronta je vizualizována jako horizontální kolekce. |