mam liste i mam do niej takie procedury
procedure dodaj_glowe(s:string);
begin
new(glowa);
glowa^.str:=s;
glowa^.wsk:=nil;
end;
procedure dodaj(s:string);
var
pom,nowy:wskaznik;
begin
if glowa=nil then dodaj_glowe(s)
else
begin
pom:=glowa;
While pom^.wsk<> nil do
pom:=pom^.wsk;
new(nowy);
nowy^.str:=s;
nowy^.wsk:=nil;
pom^.wsk:=nowy;
end;
end;
function zdejmij_ost :string;
var pom,pom2:wskaznik;
buf:string;
begin
pom:=glowa;
if glowa^.wsk = nil then
begin
buf :=glowa^.str;
dispose(glowa);
glowa:=nil;
end
else
begin
while pom^.wsk<> nil do
pom:=pom^.wsk;
buf:=pom^.str;
pom2:=glowa;
while (pom2^.wsk<>pom) do
pom2:=pom2^.wsk;
pom2^.wsk:=nil;
dispose(pom);
end;
zdejmij_ost:=buf;
end;
procedure czysc;
var
us:wskaznik;
begin
while glowa <> nil do
begin
us:=glowa^.wsk;
dispose(glowa);
glowa:=us;
end;
end;
dodaj,i zdejmi_ost(może ma ktoś pomysł na szybszy sposób) niby działa dobrze..ale za to nie działa czyść wskazuje w trakcie działania programu ze nie może dispose...poza tym nie wiem czemu wydaje mi się ze na samym końcu obliczeń glowa.^wsk=glowa;