Tuesday, May 21, 2013

double linked list pointer pada delphi secara lifo dan fifo..

oke ..lajut lagi kawan delphier ...
 kali ini kita akan belajar pointer dengan menggunakan double linked list secara lifo maupun fifo.
mungkin masih banyak yang belum begitu paham dengan istilah2 tersebut . bagi yang belum mengerti , sebaiknya baca dulu postingan sebelumnya..

belajar struktur data memang hal yang rumit, tetapi sebagai seorang programer kita wajib menguasainya.
hemm,, sebenarya saya juga baru belajar , tapi tidak apalah kita berbagi info dan  ilmu. walaupun sedikit semoga jadi bermanfaat ... untuk yang membutuhkan..

ho..hoo.ho.. tidak usah banyak cakap , ini dia lansung saja ke contoh program.
silahkan copy script berikut lalu pastekan pada delphi kalian .
selamat mencoba ,,
......................................................................................................................................................................................................................................................................................................................................

program double;


{$APPTYPE CONSOLE}


uses
  SysUtils;

type
  tipeData = ^PtipeData;
  PtipeData = record
    nilai : integer;
    prev  : tipedata;
    next  : tipeData;
  end;

var
  data, awal, akhir,data1, awal1, akhir1 : tipeData;
   I,n,k :integer;
procedure tambahFIFO(n: integer);
begin
    new(data);
   data^.nilai:= n;
   if (Awal=nil) then begin
      Awal := data;
      Akhir := data;
      data^.next:= nil;
      data^.prev := nil;
   end else begin
      Akhir^.next := data;
      Data^.prev := Akhir;
      Akhir := data;
      Akhir^.next := nil;
   end;
end;

procedure tambahLIFO(n: integer);
begin
   new(data1);
   data1^.nilai:= n;
   if (Awal1=nil) then begin
      Awal1 := data1;
      Akhir1 :=data1;
      Data1^.next:= nil;
      Data1^.prev := nil;
   end else begin
      Awal1^.prev := data1;
      Data1^.next := Awal1;
      Awal1 := data1;
      Awal1^.prev := nil;
   end;
end;

  procedure input ();
 begin
  write ('berapa banyak data nilai ? ');
  readln (n);
    for  I := 1 to n do
    begin
      write ('data ke-',I,'? ');
      readln (k);
      tambahlifo(k);
      tambahfifo(k);
    end;
 end;

procedure tampil;  // tampil fifo
begin
  writeln('Data awal = ', Awal^.nilai);
  writeln('Data akhir = ', Akhir^.nilai);
  data := Awal;
 write('FIFO = ');
  while data <> nil do
  begin
    write(data^.nilai,' ');
    data := data^.next;
  end;
end;

procedure tampil1;  // tampil lifo
begin
  writeln('Data awal = ', Awal1^.nilai);
  writeln('Data akhir = ', Akhir1^.nilai);
  data1 := Awal1;
  write('LIFO = ');
  while data1 <> nil do
  begin
    write(data1^.nilai,' ');
    data1 := data1^.next;
  end;
end;


procedure hapus;  //hapus fifo
begin
  while awal <> nil do
  begin
    data := awal;
    awal := data^.next;
    dispose(data);
  end;
end;
procedure hapus1; //hapus fifo
begin
  while awal <> nil do
  begin
    data1 := awal1;
    awal1 := data1^.next;
    dispose(data1);
  end;
end;


begin
  awal := nil;
  akhir := nil;
  input;  writeln(' ');
  tampil; writeln(' ');
  hapus;  writeln(' ');
  tampil1; writeln(' ');
  hapus1;

writeln(' ');
writeln(' ');
writeln('....................................... ');
writeln('            wahyu setiawan ');

  readln;
end.

......................................................................................................................................................................................................................................................................................................................................

         untuk pertanyaan ,saran, request maupun coment... silahkan tulis di bawah..
terimakasih sudah berkunjung di blog maz wahyu...
semoga berhasil dengan program delphinya.

No comments:

Post a Comment

jangan sampai lupa waktu