Potraktuj zbiory jako listy i skorzystaj z algorytmu, procedury
// Procedura wyznacza różnicę zbiorów A i B. Wynik w C
//----------------------------------------------------------
procedure s_difference ( p, B : PslistEl; var C : PslistEl );
begin
C := nil; // Zerujemy zbiór C
while p <> nil do // Przeglądamy kolejne elementy zbioru A
begin
if not s_isin ( B, p^.data ) then s_add ( C, p^.data ); // Jeśli elementu nie ma w B, kopiujemy
p := p^.next; // Następny element z A
end;
end;