Dziadek Mróz:
Nie szukaj gotowców tylko napisz swoje.
Lista jednokierunkowa składa się z węzłów, w tym przypadku z liczb typu int.
Węzły dodatkowo posiadają wskaźnik na kolejny węzeł.
Lista wygląda jak na rys. 1
Węzeł (rys. 1) składa się z dwóch elementów, z danych i wskaźnika na kolejny węzeł.
Lista zaczyna się od elementu pierwszego, w tym przypadku nazwiemy go first, który jest
wskaźnikiem na pierwszy węzeł.
Lista obrazowo wygląda tak:
first, first−>next, first−>next−>next, ..., first−>next−>...−>NULL
gdzie NULL to wskaźnik na pusty węzeł w liście oznaczający jej koniec.
Inicjalizacja listy:
a) List() tworzy pustą listę:
first = NULL,
obraz listy:
NULL
b) List(new_elem) tworzy jednoelementową listę:
first = new_elem,
obraz listy:
new_elem−>NULL
Zaawansowane:
c) List(other_List) inicjalizacja kopiująca, kopiuje inną listę:
first = other_List−>first,
obraz listy:
other_List−>first−>next−>...−>NULL
Metody i funkcje na liście:
isEmpty() sprawdza czy lista jest pusta, pusta w znaczeniu a)
insert(new_elem) wstawia new_elem na koniec/początek listy. Na koniec gdy mamy listę typu
FIFO, na początek gdy mamy listę LIFO
insert(new_elem, index) wstawia new_elem na pozycję index w liście. Zależnie od wymagań listę
indeksuje się albo od 0 albo od 1.
pushFront(new_elem) wstawia na początek listy new_elem
pushBack(new_elem) wstawia na koniec listy
erase() usuwa ostatni/pierwszy element na liście. Zależnie od FIFO/LIFO lub wymagań
erase(index) usuwa element na pozycji index
pop() zwraca pierwszy/ostatni element z listy. Zwraca i usuwa z listy
pop(index) jak wyżej ale z pozycji index
size() zwraca ilość elementów na liście, rozmiar liczony od 0
print() drukuje listę na ekran
delete() lub destruktor usuwa listę w znaczeniu czyszczenia pamięci