#include // Vytvorime si strukturu pro praci se zasobnikem // POZNAMKA: Funkce slouzici pro jeho upravu jej vzdy dostanou na vstupu a nasledne // jej vrati, ocekava se tedy zpetne prirazeni teto vystupni hodnoty do promenne. // NENI to reseni optimalni - cela struktura se vzdy kopiruje, lepsi reseni si // ukazeme pozdeji pomoci ukazatelu. typedef struct { int vyska; int pole[1000]; } zasobnik; // Vytvorime novy zasobnik zasobnik zas_init(zasobnik zas) { zas.vyska = 0; return zas; } // Vlozeni prvku zasobnik zas_push(zasobnik zas, int prvek) { // Vlozime do pole hodnotu zas.pole[zas.vyska] = prvek; // Zvysime vysku zas.vyska = zas.vyska + 1; // zas.vyska++; // Vratime novy zasobnik return zas; } // Ziskani nejvyssiho prvku int zas_peek(zasobnik zas) { return zas.pole[zas.vyska - 1]; } // Vyjmuti prvku zasobnik zas_pop(zasobnik zas) { zas.vyska = zas.vyska - 1; return zas; } int main() { zasobnik zas; // Inicializace zas = zas_init(zas); // Vlozeni prvku zas = zas_push(zas, 8); zas = zas_push(zas, 15); printf("%d\n", zas_peek(zas)); zas = zas_pop(zas); printf("%d\n", zas_peek(zas)); getchar(); }