Insert Before
Insert ini menambah simpul di sebelah kiri (depan) pada sebuah double link list. Untuk membuat Out put FIFO / LIFO digunakan algoritma seperti di atas.
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 insertBefore ; // insert before
begin
new(now);
if head = nil then
begin
head := now ;
now^.next := nil ;
now^.prev := nil ;
end
else
begin
head^.prev := now ;
now^.next := head ;
head := now ;
head^.prev := nil ;
end;
end;
begin
writeln('DATA MAHASISWA');
writeln('__________________________');
writeln ;
repeat
insert After
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 := 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;
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