Sesuai dengan judulnya, program kali ini adalah program Linked List tidak terurut disertai perintah/ menu penyisipan simpul baru yang diketahui lokasinya. Program ini dibuat menggunakan bahasa pemrograman PASCAL.
Source Code-nya adalah :
program link_list;
uses crt;
const
MAX = 1000;
var
simpul,i,chk,start,pil,ruang,x,t,nos,temp : integer;
info:array [0..MAX] of integer;
next:array [0..MAX] of integer;
procedure check;
begin
x:=1;
while info[x] <> 0 do
begin
x:=x+1;
end;
end;
procedure insert;
label 10,20;
begin
for i:= 1 to simpul do
begin
20:
write('Masukkan Nomor Simpul yang akan diisi : ');
readln(x);
if info[x] <> 0 then
begin
writeln('Simpul Sudah Terisi !');
goto 20;
end;
write('Masukkan Info Simpul ke ',x,' : ');
readln(info[x]);
10:
write('Masukkan next ',x,' : ');
readln(chk);
if (next[chk] = x) or (chk=x) then
begin
writeln('Input Salah !');
goto 10;
end
else
begin
next[x]:=chk;
end;
end;
end;
procedure tampil;
begin
writeln('Linked List ');
writeln;
i := start;
write('|',start,'|-');
if next[i] = 0 then
begin
write('|',info[i],'|',next[i],'|');
end;
while next[i] <> 0 do
begin
write('|',info[i],'|',next[i],'|-');
i:=next[i];
if next[i] = 0 then
begin
writeln('|',info[i],'|',next[i],'|');
end;
end;
end;
procedure avail;
begin
writeln('Avail List ');
writeln;
check;
if x > ruang then x:=0;
write('|',x,'|');
for i := 1 to ruang do
begin
if info[i] = 0 then
begin
t:=i+1;
while info[t] <> 0 do
begin
t:=t+1;
end;
if t < = ruang then
begin
next[i]:=t;
end
else
begin
next[i]:=0;
end;
write('-|',info[i],'|',next[i],'|');
end;
end;
end;
procedure sisip; Read more…
label ulangi;
var
loc:integer;
begin
check;
if x = (ruang +1) then
begin
writeln('Ruang Sudah Penuh !');
readkey;
end
else
begin
ulangi:
write('Masukkan Lokasi : ');readln(loc);
if info[loc] = 0 then
begin
writeln('Lokasi Salah !');
goto ulangi;
end;
write('Masukkan Data : ');readln(info[x]);
temp := next[loc];
next[loc] := x;
next[x]:=temp;
end;
end;
loading...
loading...




