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);