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;