O mojí osobě

Něco ke stažení

Články a návody

Poezie

Odkazy
Zásobník


Zásobník je jednoduchá datová struktura podobná frontě. Pracuje na principu LIFO (last in, first out), tj. při vyjmutí prvku obdržíme ten naposledy vložený.

Naprogramovat ho můžeme velice snadno. Potřebujem k tomu jen dostatečně velkou paměť (například pole) a jednu proměnou jako ukazatel na vrchol zásobníku. Budeme předpokládat, že máme indexované pole, které bude plněno od nejnižších indexů, a že ukazatel na vrchol ukazuje na první volnou položku. Operace Vlož a Vyjmi pak budou vypadat následovně:

Vlož: když ukazatel je roven velikosti pole, pak konec, zásobník je přeplněn jinak ulož do pole na pozici ukazatel vkládaná data, zvyš ukazatel o 1

Vyjmi: když ukazatel je roven 0, není co vyjmout, chyba jinak sniž ukazatel o 1 a vrať prvek z pole na pozici ukazatel

Pro úplnost ještě jednou to samé, tentokrát v C.

#define MAX_VELIKOST 50
int zasobnik[MAX_VELIKOST];
int vrchol=0;

int zasobnik_vyjmi(int *zasobnik)
{
if (vrchol==0)
	{ 
	// nějaké ošetření chyby
	exit(-1)
	};
vrchol--;
return zasobnik[vrchol];
};

void zasobnik_vlož (int *zasobnik, int prvek)
{
if (vrchol==MAX_VELIKOST)
	{
	//ošetření chyby
	exit(-1);
	};
zasobnik[vrchol++]=prvek;
return;
};


Zpět na index