program list;
uses crt;
type TipeSenarai=^RecordSenarai;
RecordSenarai=record
data:integer;
next:TipeSenarai;
end;
var
senaraiku1,senaraiku2:TipeSenarai;
Procedure inisialisasi(var senarai:TipeSenarai);
begin
senarai:=nil;
end;
Procedure tambahbarusimpul(baru:integer; var senarai:TipeSenarai);
var
pbaru,ekor:TipeSenarai;
begin
ekor:=senarai;
if ekor <> NIL then
begin
new(pbaru);
pbaru^.data:=baru;
pbaru^.next:=NIL;
while ekor^.next<>nil do
ekor:=ekor^.next;
ekor^.next:=pbaru;
end
else
begin
new(senarai);
senarai^.data:=baru;
senarai^.next:=NIL;
end;
end;
Procedure sisipsimpul(baru:integer; var senarai:TipeSenarai);
var
pbaru,p:TipeSenarai;
begin
if senarai=NIL then
begin
senarai^.data:=baru;
senarai^.next:=NIL;
end
else
begin
new(pbaru);
pbaru^.data:=baru;
pbaru^.next:=NIL;
if baru
begin
pbaru^.next:=senarai;
senarai:=pbaru;
end
else
begin
p:=senarai;
while(p^.next<>nil) and (baru <>
p:=p^.next;
pbaru^.next:=p^.next;
p^.next:=pbaru;
end;
end;
end;
procedure cetaksenarai(senarai:TipeSenarai);
var
ekor:TipeSenarai;
begin
ekor:=senarai;
if ekor <> NIL then
while ekor<>nil do
begin
writeln(ekor^.data);
ekor:=ekor^.next;
end
else
writeln('kosong');
writeln;
end;
BEGIN
inisialisasi(senaraiku1);
tambahbarusimpul(3,senaraiku1);
tambahbarusimpul(1,senaraiku1);
cetaksenarai(senaraiku1);
sisipsimpul(3,senaraiku1);
sisipsimpul(1,senaraiku1);
cetaksenarai(senaraiku1);
readln;
end.
No comments:
Post a Comment