39024

39024



STUDIUM PRZYPADKU IMPLEMENTACJA LISTY WSKAŹNIKOWEJ 147

5. Wróć do punktu 2

void wypisz_liste(el_listy 'lista)

{

el.listy *wsk=lista;    /• 1 */

while( wsk !- NULL )    /• 2 •/

{

printf ("Xlu\n", wsk->val); /• 3 •/ wsk ■ wsk->next;    /• 4 */

>    /• 5 •/

Zastanówmy się teraz, jak powinien wyglądać kod, który dodaje do listy następny element. Taka funkcja powinna:

1.    znaleźć ostatni element (tj. element, którego pole next == NULL)

2.    przydzielić odpowiedni obszar pomięci

3.    skopiować w pole val w nowo przydzielonym obszarze znalezioną liczbę pierwszą

4.    nadać polu next ostatniego elementu listy wartość NULL

5.    w pole next ostatniego elementu listy wpisać adres nowo przydzielonego obszaru Napiszmy zatem odpowiednią funkcję:

void dodaj_do_listy (el.listy 'lista, unsigned long liczba)

{

el_listy *wsk, 'nowy; wsk = lista;

while (wsk->next !■ NULL)    /* 1 */

{

wsk - wsk->next; /* przesuwamy wsk aż znajdziemy ostatni element • /

>

nowy = malloc (sizeof(el.listy));    /* 2 */

nowy->val = liczba;    /* 3 */

nowy->next = NULL;    /* 4 */

wsk->next * nowy;    /* 5 */

)

I... to już właściwie koniec naszej funkcji (warto zwrócić uwagę, że funkcja w tej wersji zakłada, że na liście jest już przynajmniej jeden element). Wstaw ją do kodu przed funkcją main. Został nam jeszcze jeden problem: w pętli for musimy dodać lani, który odpowiednio l>ędzie "badał" liczby oraz w przypadku stwierdzenia pierwszeństwa liczby, będzie dodawał ją do listy. Ten kod powinien wyglądać mniej więcej tak:

int jest_pierwsza(el_listy 'lista, int liczba)

<

el.listy *wsk;

wsk ■ first;

while (wsk !- NULL) {

if ((liczba X wsk->val)==0) return 0; /* jeśli reszta z dzielenia liczby przez którąkolwiek z poprzednio znalezionych liczb pierwszych jest równa zero, to znaczy, że liczba ta nie jest liczbą pierwszą */ wsk ■ wsk->next;

}

/* natomiast jeśli sprawdzimy wszystkie poprzednio znalezione liczby



Wyszukiwarka

Podobne podstrony:
STUDIUM PRZYPADKU IMPLEMENTACJA LISTY WSKAŹNIKOWEJ 115Zobacz też • Powszechna praktyki konstruktor)
STUDIUM PRZYPADKU IMPLEMENTACJA LISTY WSKAŹNIKOWEJ 119 int main () { unsigned long i = 3; /• szukany
Poznaj C++ w$ godziny0213 204 Godzina 14 przez wskaźniki zawarte w obiekcie oryginalnym. Widać to by
Studium przypadku Jan Kowalski wrócił do Polski po 15 latach nieobecności z zamiarem
Problematyka zarządzania płynnością finansową... 19 szar badawczy, studium przypadku zawężone jest d
84 Magdalena Szyszko, Karolina Tura dłowych, symulacyjna gra dydaktyczna, studium przypadku w odnies
przyczyną wystarczającą do odrzucenia studium przypadku, ponieważ metoda ta jest tylko jedną z techn
oddziaływania na organizmy. W przypadku wskaźnika W9 mamy do czynienia z jednym kryterium (9.1), odn
studium przypadkuKompozycja fotograficzna Perspektywa żabia / perspektywa z lotu ptaka To dwie najpr
Zdjęcie1555 4- Finansowej. Wskaźniki te w zależność od ■ Ta grupa wskaźników odnosi sią do oceny dzi
star266072 72 Naprawa samochodu terenowego STAR 266 W przypadku zużycia pierścieni ciernych tłumika
reh test (12) 37)W przypadku urazu stawu kolanowego najbardziej dochodzi do zaniku? a)
skanowanie0025 (27) dopóty, dopóki wskaźnik relacji zadłużenia do wartości kredytowanej nieruchomośc

więcej podobnych podstron