logo

Zásobník vs. fronta

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.

Zásobník vs. fronta

Následující operace lze provádět se zásobníkem:

    push(x):Je to operace, při které jsou prvky vkládány do horní části zásobníku. V TAM potřebujeme předat prvek, který chceme vložit do zásobníku.pop():Je to operace, při které jsou prvky odstraněny z horní části zásobníku. V pop() funkce, nemusíme předávat žádný argument.peek()/top():Tato funkce vrací hodnotu nejvyššího prvku dostupného v zásobníku. Stejně jako pop() vrací hodnotu nejvyššího prvku, ale neodebírá tento prvek ze zásobníku.je prázdný():Pokud je zásobník prázdný, pak tato funkce vrátí hodnotu true, jinak vrátí hodnotu false.je plný():Pokud je zásobník plný, pak tato funkce vrátí hodnotu true, jinak vrátí hodnotu false.

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:

    Statický:Statická implementace zásobníku může být provedena pomocí polí.Dynamický:Dynamickou implementaci zásobníku lze provést pomocí propojeného seznamu.

Co je to fronta?

A

Podobnosti mezi zásobníkem a frontou.

Mezi zásobníkem a frontou jsou dvě podobnosti:

    Lineární datová struktura
    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.Flexibilní ve velikosti
    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

Zásobník vs. fronta

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.