Holas!
Esas clases implementan un parte de lo que se conoce como TAD (Tipo Abstracto de Dato), esto es básicamente estructuras de almacenamiento de datos de la vida cotidiana com las pilas de libros o las colas de los cines o las listas de compras implementadas en computación. Existe muchisimos tipos de TAD, otros ejemplos son las tablas de dispersión o Hash, los arboles binarios, listas doblemente enlazadas, grafos, diccionarios, todo tipo de arboles, etc. Cada tipo se utiliza en funcion de lo que se necesite, por ejemplo para búsquedas rápidas conviene usar tablas hash o arboles binarios. No es dificil implementar estos tads, lo que hay que hacer es pensar las funciones primitivas básicas que deben tener para su utilización, aquellas que mediante su combinación se pueden crear otras funcionalidades.
Aca va un tipico ejemplo de como implementar una lista:
Código Delphi
[-]
type
PListItem = ^TListItem;
TListItem = record
next: PListItem;
data: Pointer;
end;
TLinkedList = object
procedure Add(data: Pointer);
procedure Remove(data: Pointer);
end;