146 ROZDZIAŁ 19. TYPY ZŁOŻONE Implementacja listy W języku C aby stworzyć listę musimy użyć struktur. Dlaczego? Ponieważ musimy prze- chować co najmniej dwie wartości: 1. pewną zmienną (np. liczbę pierwszą z przykładu) 2. wskaźnik na kolejny element listy Przyjmijmy, że szukając liczb pierwszych nie przekroczymy możliwości typu unsigned long: typedef struct element { struct element *next; /* wskaźnik na kolejny element listy */ unsigned long val; /* przechowywana wartość */ } el_listy; Zacznijmy zatem pisać nasz eksperymentalny program, do wyszukiwania liczb pierwszych. Pierwszą liczbą pierwszą jest liczba 2 Pierwszym elementem naszej listy będzie zatem struk- tura, która będzie przechowywała liczbę 2. Na co będzie wskazywało pole next? Ponieważ na początku działania programu będziemy mieć tylko jeden element listy, pole next powin- no wskazywać na NULL. Umówmy się zatem, że pole next ostatniego elementu listy będzie wskazywało NULL — po tym poznamy, że lista się skończyła. #include #include typedef struct element { struct element *next; unsigned long val; } el_listy; el_listy *first; /* pierwszy element listy */ int main () { unsigned long i = 3; /* szukamy liczb pierwszych w zakresie od 3 do 1000 */ const unsigned long END = 1000; first = malloc (sizeof(el_listy)); first-val = 2; first-next = NULL; for (;i
... zobacz całą notatkę
Komentarze użytkowników (0)