buat program dengan turbo pascal
uses crt;
type link = ^rantai;
rantai = record
info : char;
next : link;
end;
var LL : link;
procedure baru (var nodebaru : link; databaru:char);
begin
new (nodebaru);
nodebaru^.info:=databaru;
nodebaru^.next:=nil;
end;
procedure bacaisi(var LL:link);
var bantu:link;
begin
if LL=nil then
begin
writeln;
writeln('Senarai kosong');
end
else
begin
bantu:=LL;
if bantu^.next=nil then
begin
writeln;
write(bantu^.info,' ');
exit;
end
else
begin
writeln;
write(bantu^.info,' ');
repeat
bantu:=bantu^.next;
write(bantu^.info,' ');
until bantu^.next=nil;
end;
end;
end;
procedure masukdibelakang(var LL:link; var databaru:char);
var nodebaru : link;
bantu : link;
begin
baru(nodebaru, databaru);
if LL=nil then
begin
LL:=nodebaru
end
else
begin
bantu:=LL;
while bantu^.next <> nil do
bantu:=bantu^.next;
bantu^.next:=nodebaru;
end;
end;
procedure hapusdidepan(var LL:link);
var nodehapus:link;
begin
if LL=nil then
begin
writeln;
write('Senarai Kosong');
end
else
begin
nodehapus:=LL;
LL:=LL^.next;
dispose(nodehapus);
end;
end;
procedure masuknodediantara(var LL:link; setelahhuruf, databaru : char);
var nodebaru, bantu : link;
begin
if LL=nil then
writeln('Senarai masih Kosong')
else
begin
baru(nodebaru, databaru);
bantu:=LL;
repeat
if bantu^.info=setelahhuruf then
begin
nodebaru^.next:=bantu^.next;
bantu^.next:=nodebaru;
exit;
end
else
bantu:=bantu^.next;
until bantu^.next=nil;
if bantu^.info=setelahhuruf then
masukdibelakang(LL, databaru);
end;
end;
procedure hapusnodetertentu( var LL:link; datahapus:char);
var nodehapus, bantu:link;
begin
if LL=nil then
write('Senarai Sudah Kosong')
else
if LL^.info=datahapus then
hapusdidepan(LL)
else
begin
bantu:=LL;
while bantu^.next<>nil do
begin
if bantu^.next^.info=datahapus then
begin
nodehapus:=bantu^.next;
bantu^.next:=bantu^.next^.next;
dispose (nodehapus);
end
else
bantu:=bantu^.next;
end;
end;
end;
procedure hapusdibelakang(var LL:link);
var bantu : link;
var nodehapus : link;
begin
if LL=nil then
begin
writeln;
write('Senarai Sudah Kosong');
end
else if LL^.next=nil then
begin
hapusdidepan(LL);
end
else
begin
bantu:=LL;
while bantu^.next^.next<>nil do
bantu:=bantu^.next;
hapusdidepan(bantu^.next);
end;
end;
var pilih, databaru, datamasuk, setelahhuruf, datahapus : char;
begin
repeat
clrscr;
writeln('Program Single Link List');
writeln('-------');
writeln('1. Tambah Node dari Belakang');
writeln('2. baca isi Node');
writeln('3. Hapus node dari belakang');
writeln('4. Tambah node diantar');
writeln('5. Hapus data tertentu');
writeln('6. Selesai');
writeln('-------');
write('Masukkan Pilihan Anda :');
pilih:=readkey;
write(pilih);
case pilih of
'1' : repeat
writeln;
write('Masukkan Data :');
databaru:=UPCASE(readkey);
writeln(databaru);
masukdibelakang(LL, databaru);
until (databaru=#27);
'2' : bacaisi(LL);
'3' : begin
hapusdibelakang(LL);
bacaisi(LL);
writeln('Node Sudah ihapus');
writeln;
writeln('Node Sekarang');
bacaisi(LL);
end;
'4' : begin
writeln;
writeln;
write('Isi senarai saat ini adalah:');
bacaisi(LL);
writeln;
write('Masukkan huruf yang disisipkan:');
databaru:=upcase(readkey); writeln(databaru);
write('Disisipkan setelah huruf:');
setelahhuruf:=upcase(readkey);
writeln(setelahhuruf);
masuknodediantara(LL, setelahhuruf, databaru);
bacaisi(LL);
end;
'5' :begin
writeln;
writeln;
writeln('isi senarai saat ini');
bacaisi(LL);
writeln;
write('Data yang akan dihapus adalah:');
datahapus:=upcase(readkey);
writeln(datahapus);
hapusnodetertentu(LL, datahapus);
bacaisi(LL);
end;
end;
readkey;
until pilih='6';
end.
erwinhasibuan.blogspot.com
type link = ^rantai;
rantai = record
info : char;
next : link;
end;
var LL : link;
procedure baru (var nodebaru : link; databaru:char);
begin
new (nodebaru);
nodebaru^.info:=databaru;
nodebaru^.next:=nil;
end;
procedure bacaisi(var LL:link);
var bantu:link;
begin
if LL=nil then
begin
writeln;
writeln('Senarai kosong');
end
else
begin
bantu:=LL;
if bantu^.next=nil then
begin
writeln;
write(bantu^.info,' ');
exit;
end
else
begin
writeln;
write(bantu^.info,' ');
repeat
bantu:=bantu^.next;
write(bantu^.info,' ');
until bantu^.next=nil;
end;
end;
end;
procedure masukdibelakang(var LL:link; var databaru:char);
var nodebaru : link;
bantu : link;
begin
baru(nodebaru, databaru);
if LL=nil then
begin
LL:=nodebaru
end
else
begin
bantu:=LL;
while bantu^.next <> nil do
bantu:=bantu^.next;
bantu^.next:=nodebaru;
end;
end;
procedure hapusdidepan(var LL:link);
var nodehapus:link;
begin
if LL=nil then
begin
writeln;
write('Senarai Kosong');
end
else
begin
nodehapus:=LL;
LL:=LL^.next;
dispose(nodehapus);
end;
end;
procedure masuknodediantara(var LL:link; setelahhuruf, databaru : char);
var nodebaru, bantu : link;
begin
if LL=nil then
writeln('Senarai masih Kosong')
else
begin
baru(nodebaru, databaru);
bantu:=LL;
repeat
if bantu^.info=setelahhuruf then
begin
nodebaru^.next:=bantu^.next;
bantu^.next:=nodebaru;
exit;
end
else
bantu:=bantu^.next;
until bantu^.next=nil;
if bantu^.info=setelahhuruf then
masukdibelakang(LL, databaru);
end;
end;
procedure hapusnodetertentu( var LL:link; datahapus:char);
var nodehapus, bantu:link;
begin
if LL=nil then
write('Senarai Sudah Kosong')
else
if LL^.info=datahapus then
hapusdidepan(LL)
else
begin
bantu:=LL;
while bantu^.next<>nil do
begin
if bantu^.next^.info=datahapus then
begin
nodehapus:=bantu^.next;
bantu^.next:=bantu^.next^.next;
dispose (nodehapus);
end
else
bantu:=bantu^.next;
end;
end;
end;
procedure hapusdibelakang(var LL:link);
var bantu : link;
var nodehapus : link;
begin
if LL=nil then
begin
writeln;
write('Senarai Sudah Kosong');
end
else if LL^.next=nil then
begin
hapusdidepan(LL);
end
else
begin
bantu:=LL;
while bantu^.next^.next<>nil do
bantu:=bantu^.next;
hapusdidepan(bantu^.next);
end;
end;
var pilih, databaru, datamasuk, setelahhuruf, datahapus : char;
begin
repeat
clrscr;
writeln('Program Single Link List');
writeln('-------');
writeln('1. Tambah Node dari Belakang');
writeln('2. baca isi Node');
writeln('3. Hapus node dari belakang');
writeln('4. Tambah node diantar');
writeln('5. Hapus data tertentu');
writeln('6. Selesai');
writeln('-------');
write('Masukkan Pilihan Anda :');
pilih:=readkey;
write(pilih);
case pilih of
'1' : repeat
writeln;
write('Masukkan Data :');
databaru:=UPCASE(readkey);
writeln(databaru);
masukdibelakang(LL, databaru);
until (databaru=#27);
'2' : bacaisi(LL);
'3' : begin
hapusdibelakang(LL);
bacaisi(LL);
writeln('Node Sudah ihapus');
writeln;
writeln('Node Sekarang');
bacaisi(LL);
end;
'4' : begin
writeln;
writeln;
write('Isi senarai saat ini adalah:');
bacaisi(LL);
writeln;
write('Masukkan huruf yang disisipkan:');
databaru:=upcase(readkey); writeln(databaru);
write('Disisipkan setelah huruf:');
setelahhuruf:=upcase(readkey);
writeln(setelahhuruf);
masuknodediantara(LL, setelahhuruf, databaru);
bacaisi(LL);
end;
'5' :begin
writeln;
writeln;
writeln('isi senarai saat ini');
bacaisi(LL);
writeln;
write('Data yang akan dihapus adalah:');
datahapus:=upcase(readkey);
writeln(datahapus);
hapusnodetertentu(LL, datahapus);
bacaisi(LL);
end;
end;
readkey;
until pilih='6';
end.
erwinhasibuan.blogspot.com
buat program dengan turbo pascal
Reviewed by Unknown
on
03.41.00
Rating:
Tidak ada komentar:
Posting Komentar