Lista (komputer)

W informatyce , A lista jest struktura danych umożliwiając danych razem grupę, tak, aby móc do niego dostępu swobodnego (w przeciwieństwie do kolejki i stosów , które są dostępne w FIFO i LIFO trybie odpowiednio ).

Lista jest podstawą bardziej złożonych struktur danych, takich jak stos , kolejka , drzewa itp. Znaczenie listy jako struktury danych jest takie, że jest ona podstawą języka programowania Lisp (angielski list processing ).

Prymitywy

Oto prymitywy powszechnie używane do manipulowania listami; nie ma standaryzacji dla prymitywów manipulacji listami, więc ich nazwy są podawane nieformalnie.

Podstawowe prymitywy:

Często spotykane prymitywy pomocnicze:

Typy list

Lista to kontener elementów, w którym każdy element zawiera dane, a także inne informacje umożliwiające pobranie danych w ramach listy. Charakter (rodzaje) tych informacji charakteryzuje inny typ listy.

Ogólnie możemy wyróżnić dwa rodzaje list:

Tablica

Dostęp do elementu odbywa się za pomocą indeksu, który reprezentuje położenie elementu w strukturze.

Dane w tabeli są ciągłe w pamięci. Powoduje to stały rozmiar tablicy, tj. Niezmienność; jednak niektóre języki wysokiego poziomu udostępniają tablice, które zmieniają swój rozmiar w zależności od ich zastosowania: nazywa się to tablicą o rozmiarze dynamicznym. Jednak ich implementacja opiera się na zasadzie list połączonych (patrz poniżej).

Tablice mogą również mieć wiele wymiarów, reprezentowanych przez sekwencję indeksów dolnych. W tym przypadku, jeśli n jest wymiarem macierzy (gdzie n jest liczbą całkowitą różną od zera naturalne), wymiar elementów tablicy 1 (z 1 ul  indeksem sekwencji) każdego wskazującego z innym (pod) Tablica wymiar n 1 .

Połączona lista

W przeciwieństwie do tablicy, rozmiar listy połączonej nie ma ograniczeń innych niż rozmiar dostępnej pamięci. To ograniczenie jest przezwyciężane przez fakt, że każdy element może wskazywać, zgodnie z typem połączonej listy, jeden lub więcej elementów listy przy użyciu definicji rekurencyjnej. W związku z tym, aby zwiększyć rozmiar listy połączonej, wystarczy utworzyć nowy element i skierować pewne elementy, które już znajdują się na liście, do nowego elementu.

Istnieją dwa główne typy list połączonych:

Do tego możemy dodać właściwość: cykl. Tym razem połączona lista tworzy pętlę. Gdy tylko dojdziesz do „końca” listy i zechcesz kontynuować, znajdziesz się na „pierwszym” elemencie listy. W tym przypadku pojęcie początku lub końca łańcucha nie ma już żadnego powodu do istnienia.