Lista jednukierunkowa - wybrane operacje

Aby móc używać listy jednokierunkowej należy ją najpierw zadeklarować. Zacznijmy zatem od deklaracji potrzebnych typów i zmiennych:

type
   plist = ^element;
   element = record
         key : integer;
         wsk : plist;
   end;

var
   first, previous, current, next : plist;

1. Dodawanie elementu do listy

W pierwszej kolejności należy ustalić gdzie chcemy wstawić nowy element do listy. W zależności od miejsca wstawiania operacje bedą się nieco od siebie różnić, jednak po zrozumieniu poniższego przykladu nie powinno byc problemu z dostosowaniem operacji na liscie do swoich potrzeb. Załóżmy zatem, że nowy element (k4) będzie wstawiany pomiędzy elementami o kluczach: k2 i k3, pokazuje to poniższy rysunek.

Ustawiamy wskaźnik current na adres elementu poprzedzającego miejsce wstawienia (w skrócie będę używał wyrażenia - na element), first zawsze wskazuje pierwszy element listy.

current:=first;
while current^.key<>k2 do
   current:=current^.wsk;
previous := current;
next := current^.wsk; // w tej chwili mamy sytuację, którą obrazują czarne strzałki.
// następnie tworzymy nowy element w pamięci i uzupełniamy jego pola:

New(current); // czerwona strzałka
with current^ do
   begin
     key := k4;
     wsk := next; // zielona strzałka - wskazuje na ten sam element co next
   end;
// pozostaje jeszcze połączyć elementy k2 i k4 - niebieska strzałka
previous^.wsk := current;

Operacja wstawienia elementu do listy została zakończona.