2277150870

2277150870



LISTY

Lista to struktura dynamiczna zawierająca składowe zdefiniowane tak samo jak lista (rekurencyjnie) i wskazujące na inne elementy listy (jeden element wskazuje na inny).

Listy możemy podzielić na:

•    jednokierunkowe,

•    dwukierunkowe,

•    wielokierunkowe.

Lista jednokierunkowa

Przykład takiej listy:

struct LISTA { struct LISTA *next;

}

Do definicji pól dowolnego elementu takiej struktury używana jest definicja pojedynczego jej elementu. To znaczy, że obiekt LISTA zawiera pola, które definiowane są tak samo, jak LISTA, rekurencyjnie. Nie ma jednak obawy o pozorną nieskończoność takiej struktury. Definicja pola next oznacza, że jest to wskaźnik, a nie sama struktura Zatem, w momencie definicji, wskaźnik ten istnieje, ale nie istnieje żaden obiekt przez niego wskazywany. Dopiero w przyszłości będzie on pokazywał na takie same elementy typu LISTA, wewnątrz jakiego sam się znajduje. W praktyce do struktury tego typu wprowadza się jeszcze jakieś pola przechowujące informacje, np.

struct TNode {

TNode *next; int nrdl;

}

Właściwością tej struktury jest zdolność do przechowywania liczb całkowitych (w polu o nazwie nrdl).

Inna lista jednokierunkowa:

struct TListNode {

TListNode *nastepny; void *dane;

}

posiada zdolność do przechowywania wskaźników na obiekty dowolnego typu. Można w ten sposób przechowywać wskaźniki do liczb, napisów', tablic, funkcji i wszystkiego, co posiada adres. Oczywiście obsługa tak przechowywanych adresów wymaga potem umiejętnej oceny, czym jest akurat przechowywany wskaźnik, ale to już problemy innej natury.

Gdy do pojedynczego elementu typu na przykład LISTA dopiszemy następny, wstawiając w polu next adres nowego elementu, otrzymamy "połączenie" pomiędzy' elementami - z pierwszego można trafić do drugiego za pomocą wskaźnika. Odwrotnie już nie - drugi

Strona 3 z 41



Wyszukiwarka

Podobne podstrony:
skanuj0014 132 Marcel Mauss tak samo, jak można to stracić na wojnie1 2 czy wskutek błędu obrzędoweg
Tak samo jak miało to miejsce w przypadku sprężarek tak i również w przypadku zaworow możemy dokonać
0000015 (10) 252 V. Strukturalizm lingwistyczny a znowu tak samo jak gotowanie, jest formą warzenia
img064 (40) 64 storyczni, i to nie tylko żeńskiego pogłowia, umieli używać najdrobniejszych narzędzi
Nie męczy to Pana? Tak samo jak muzyka, który słyszy fałszywą nutę, zgrzyt żelaza na szkle... Kiedy
2013 10 28 05 30 105 POMOSTY LĄDOWE pnie wyginąć na północy, tak samo jak było z małpami i nosorożc

więcej podobnych podstron