USES Crt;
TYPE Duma =
^data;
data =
RECORD
nilai :
char;
lagi : Duma;
end;
var jalan :
duma;
kar,tom :
char;
masuk :
boolean;
{---------------------------------------------------------------------}
PROCEDURE
Baca(jalan:duma);
var
bantu:duma;
begin
bantu:=jalan;
while
bantu<>nil do
begin
write(bantu^.nilai,'
');
bantu:=bantu^.lagi;
end;
writeln;
end;
{---------------------------------------------------------------------}
PROCEDURE
Masdep(var jalan:duma;kar:char);
var
baru:duma;
begin
new(baru);baru^.nilai:=kar;baru^.lagi:=nil;
if jalan=nil
then jalan:=baru
else
begin
baru^.lagi:=jalan;
jalan:=baru;
end;
end;
{---------------------------------------------------------------------}
PROCEDURE
bacamundur(jalan:duma);
var
bantu,baru,lewat : duma;
begin
new(baru);baru^.lagi:=nil;
bantu:=jalan;
if bantu=nil
then writeln('Link kosong !')
else
begin
repeat
new(lewat);{lewat^.lagi:=nil;}
lewat^.nilai:=bantu^.nilai;
lewat^.lagi:=baru;
baru:=lewat;
bantu:=bantu^.lagi;
until
bantu=nil;
bantu:=baru;
while
bantu^.lagi<>nil do
begin
writeln(bantu^.nilai);
bantu:=bantu^.lagi;
end;
end;
end;
{---------------------------------------------------------------------}
PROCEDURE
hapus(jalan:duma;kar:char);
var
bantu,baru,lewat : duma;
begin
new(baru);baru^.lagi:=nil;
bantu:=jalan;
if bantu=nil
then writeln('Link kosong !')
else
begin
repeat
if
bantu^.nilai<>kar then
begin
new(lewat);{lewat^.lagi:=nil;}
lewat^.nilai:=bantu^.nilai;
lewat^.lagi:=baru;
baru:=lewat;
end;
bantu:=bantu^.lagi;
until
bantu=nil;
bantu:=baru;
while
bantu^.lagi<>nil do
begin
writeln(bantu^.nilai);
bantu:=bantu^.lagi;
end;
end;
end;
{---------------------------------------------------------------------}
begin
clrscr;
new(jalan);
jalan^.lagi:=nil;
tom :='Y';
while upcase
(tom)='Y' do
begin
repeat
masuk:=true;
write('Masukkan
satu huruf, untuk berhenti [T]: ');
kar:=upcase(readkey);writeln(kar);
if kar='T'
then masuk:=false;
if
masuk=true then masdep(jalan,kar);
until
kar='T';
writeln;
write('huruf
yang akan dihapus adalah : ');kar:=upcase(readkey);
hapus(jalan,kar);
writeln;
write ('Lagi
[Y/T] ? ');readln(tom);
readln;
end;
end.
Tidak ada komentar:
Posting Komentar