Linked list mempunyai karakteristik dapat bergerak maju dan mundur(ke kanan dan ke kiri) oleh karena pergerakanya yang demikian ini,operasi operasi insert pada link list ini dapat digunakan program FIFO atau LIFO sekaligus. Berbeda dengan singgle lingked list yang operasi program FIFO atau LIFO di tempatkan pada insert itu sendiri
Insert After Insert After ini menambahkan simpul di sebelah kanan (di belakang)
dari sebuah Double Link List . Untuk Membuat program FIFO LIFO di tempatkan pada output dari program
program Project2;
program P_dobelLink;
{$APPTYPE CONSOLE}
uses
SysUtils;
type
point = ^recKar ;
reckar = record
id_mhs : string ;
nama : string ;
prodi : string ;
semester : integer ;
next,prev : point;
end;
var
head,now,tail : point ;
jawab : char ;
no : byte ;
procedure insertAfter ; // insert After
begin
new(now) ;
if head =nil then
begin
head := now ;
tail := now ;
head^.prev := nil ;
tail^.prev := nil ;
end
else
begin
tail^.next := now ;
now^.prev := tail ;
tail := now ;
tail^.next := nil ;
end;
end;
begin
writeln('DATA MAHASISWA');
writeln('__________________________');
writeln ;
repeat
insertAfter;
write('ID MAHASISWA :'); readln(now^.id_mhs);
write('NAMA :'); readln(now^.nama);
write('PRODI :'); readln(now^.prodi);
write('SEMESTER :'); readln(now^.semester);
writeln ;
write('Apakah ingin isi data lagi (Y/T)? ');readln(jawab);
writeln ;
until upcase(jawab) ='T' ;
writeln ;
writeln('DATA MAHASISWA');
writeln('__________________________');
writeln ;
no := 1 ;
now := head ;
while now <> nil do
begin
writeln (No,'. ID MAHASISWA :',Now^.id_mhs) ;
writeln (' NAMA :',Now^.nama) ;
writeln (' PRODI :',Now^.prodi) ;
writeln (' SEMESTER :',Now^.semester) ;
writeln ;
inc(no) ;
now := now^.next ;
end;
readln ;
end;
Pembuatan output FIFO / LIFO terletak pada perintah berikut :
FIFO
|
no := 1 ;
now := head ;
while now <> nil do
begin
writeln (No,'. ID MAHASISWA :',Now^.id_mhs) ;
writeln (' NAMA :',Now^.nama) ;
writeln (' PRODI :',Now^.prodi) ;
writeln (' SEMESTER :',Now^.semester) ;
writeln ;
inc(no) ;
now := now^.next ;
end;
|
LIFO
|
no := 1 ;
now := tail ;
while now <> nil do
begin
writeln (No,'. ID MAHASISWA :',Now^.id_mhs) ;
writeln (' NAMA :',Now^.nama) ;
writeln (' PRODI :',Now^.prodi) ;
writeln (' SEMESTER :',Now^.semester) ;
writeln ;
inc(no) ;
now := now^.prev ;
end;
|

No comments:
Post a Comment