Implementuje listę podwieszaną w pascalu.(niestety nie ma wielu informacji na ten temat) W zamyśle to lista studentów i ich książek.O ile lista dwukierunkowa studentów działa bez zarzutu,to jeżeli próbuje dodać do któregoś studenta pierwszą książkę,to na pierwszy rzut oka wszystko działa poprawnie,jednak kiedy próbuje wyświetlić studentów i ich książki to w dalszym ciągu pokazuje mi komunikat który stwierdza,że nie przypisano książek do studenta.Zamieszczam część kodu odpowiedzialną za dodanie książki.(GUARD to zmienna przechowująca wskaźnik na głowe i ogon listy dwukierunkowej)
function getBook():Pbook;
var
b:Pbook;
begin
new(b);
Writeln('tytul');
readln(b^.title);
b^.next:=nil;
getBook:=b;
end;
procedure addBook(var guard:velem);
var
s:Pbook;
Sname:string[20];
begin
new(s);
writeln('ktoremu studentowi chcesz dopisać ksiazke');
readln(Sname);
s:=returnLibrary(sname,guard);
if(s=nil)then
begin
s:=getbook();
end else
begin
while(s<>nil)do
begin
s:=s^.next;
end;
s^.next:=getBook();
end;
end;
function returnLibrary(n:string;var guard:velem):pbook;
var
p:Pstudent;
b:Pbook;
begin
p:=guard.head;
while(p<>nil)do
begin
if(p^.name=n)then
begin
b:=p^.books;
returnLibrary:=b;
end;
p:=p^.next;
end;
end;
byłbym wdzięczny gdyby ktoś odnalazł błąd.