|
O mojí osobě
Něco ke stažení Články a návody Poezie Odkazy |
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;
};
|