program listamuveletek;
type
infotipus =integer;
elemcim =^elem;
elem =record
info :infotipus;
kovetkezo :elemcim;
end;{elem}
var
fej :^elem;
{===================================================================}
procedure inic;
begin
fej:=Nil;
end;
{-------------------------------------------------------------------}
procedure Elejerebeszur(var fej:elemcim;informacio:infotipus);
var uj:elemcim;
begin
new(uj);
with uj^ do begin
info :=informacio;
kovetkezo:=fej;
end;
fej:=uj;
end;
{-------------------------------------------------------------------}
procedure VegereBeszur(fej:elemcim;informacio:infotipus);
var
uj :elemcim;
aktualis:elemcim;
begin
if fej=nil then Elejerebeszur(fej,informacio)
else begin
aktualis:=fej;
while aktualis^.kovetkezo<>nil do aktualis:=aktualis^.kovetkezo;
new(uj);
with uj^ do begin
info :=informacio;
kovetkezo:=nil;
end;
aktualis^.kovetkezo:=uj;
end;
end;
{-------------------------------------------------------------------}
procedure UtanBeszur(aktualis:elemcim;informacio:infotipus);
var
uj:elemcim;
begin
new(uj);
with uj^ do begin
info :=informacio;
kovetkezo:=aktualis^.kovetkezo;
end;
aktualis^.kovetkezo:=uj;
end;
{-------------------------------------------------------------------}
procedure Elebeszur(aktualis:elemcim;informacio:infotipus);
var
seged:elemcim;
begin
Utanbeszur(aktualis,informacio);
seged^.info:=aktualis^.info;
aktualis^.info:=aktualis^.kovetkezo^.info;
aktualis^.kovetkezo^.info:=seged^.info;
end;