element nie zawiera żadnych informacji o tym, czy posiada poprzednika, czy nie. Dlatego lista jest jednokierunkowa - stojąc na dowolnym elemencie można mieć dostęp tylko do elementów następnych. Graficzna reprezentacja listy jest prosta i czytelna gdy przedstawi się ją za pomocą strzałek i węzłów.
Dla struktury typu LISTA wygląda to tak:
NULL
Graficzna reprezentacja prostej, jednokierunkowej listy. Ostatni element to wskaźnik pusty -czyli next mający wartość NULL.
Jak widać, tworzony jest łańcuch elementów, który nie ma z góry określonej swojej długości. Długość może być zmienna, i jest to jedna z najważniejszych zalet struktur tego typu. Na rysunku pokazano tylko cztery elementy, ale może ich być o wiele więcej. Co więcej, ostatni wskaźnik next, na rysunku mając wartość NULL (czyli pusty - nigdzie nie pokazujący) może pokazywać na pierwszy element, tworząc tak zwaną listę cykliczną. Graficzną reprezentację listy cyklicznej można zobaczyć poniżej, tym razem dla struktury zdefiniowanej jako TNode:
Lista cykliczna z numerami elementów- w polu nrdl
Numeracja pól listy jest wprowadzona po to, aby można było wykryć pierwszy element listy. Nie jest to konieczne, jeżeli nie zależy nam na kolejności, albo nie liczymy elementów . Podczas przetwarzania listy cyklicznej można łatwo spraw dzić, w którym jesteśmy miejscu. Lista taka - gdzie jednym z pól jest numer pozycji, nazywa się listą numerowaną, lub listą indeksowaną
Lista dwukierunkowa
Lista dwukierunkowa powinna zawierać dwa wskaźniki obok innych pól informacyjnych -wskazujące na poprzedni element oraz na następny. Taka lista jest strukturą uniwersalną i do niektóry ch zastosowań w programow aniu jest w prost idealna. Przykład poniżej:
structT2List {
T2List *n, *p;
.... /* dane */
}
Strona 4 z 41