Zadanie domowe Stos jest podstawową strukturą danych

Transkrypt

Zadanie domowe Stos jest podstawową strukturą danych
Zadanie domowe
Stos jest podstawową strukturą danych wykorzystywaną w informatyce. Zasada jego działania
jest bardzo prosta: im coś później na stos zostało odłożone, tym wcześniej z niego zostanie
zdjęte. Jak w każdym stosie znanym nie tylko z informatyki, ale także z życia - żeby zdjąć coś
co jest pod spodem (trafiło na stos wcześniej) trzeba najpierw zdjąć to, co jest na jego
wierzchu (trafiło na stos później). Angielski skrót na stos to LIFO (last in first out).
Dwoma operacjami, które są na stosie dopuszczalne są:
push(x) - dodanie elementu x do stosu
pop() - ściągnięcie obiektu ze stosu
Wykonaj implementację wskaźnikową stosu (wskaźnikową nie tablicową!!!!!!!!!!!!!).
Struktura stosu może wyglądać następująco
struct stos
{
int x;
struct stos *next;
};
Należy zaimplementować 3 funkcje o następującej postaci:
struct stos *push(struct stos *top, int x) - dodanie elementu x do stosu
struct stos *pop(struct stos *top) - ściągnięcie elementu ze stosu
void pokaz_stos(struct stos *top) - wyświetlenie zawartości stosu
Sprawdzić działanie stosu w funkcji main, np.
struct stos *top = NULL;
top = push(top, 4);
top = push(top, 5);
top=pop(top);
pokaz_stos(top);
Do implementacji mogą być potrzebne następujące funkcje z biblioteki <stdlib.h>:
void * malloc ( size_t size ) - przydziela pamięć o wielkości size bajtów.
void free(void *ptr) - zwalnia blok pamięci wskazywany przez ptr wcześniej przydzielony
przez funkcję malloc.
Przykładowe użycie:
malloc(sizeof(struct stos));
free(top);