Es ist im Grunde nichts besonderes.
Typendefinition:
Code (Delphi):
 
  //Alle Werte eines Feldes
  PField = ^TField;
 
  TInfo = record
              row, col : TRowCol; //Position im gesamten Spielfeld
              player : TPlayer;
              selected : boolean;
          end;
 
  TField = record
              Info : TInfo;
              p : array[TPointerDirection] of PField; //Zeiger auf die Nachbarfelder
              pNext : PField; //lineare Verkettung
           end;
 

Den Rest der Typendefinition hab ich mal weggelassen.

Funktion:
Code (Delphi):
 
function list_isIn(I:TInfo; F:PField):boolean;
begin
  if I = F^.Info then
    list_isIn := true
  else
    list_isIn := list_isIn(e, list_tail(l));
end;
 

list_tail() liefert nur den pNext-Zeiger