5 Feb 2015

CIRCULAR LINK LIST insert Before dalam Pascal

Insert before

program P_circular;

{$APPTYPE CONSOLE}

uses
  SysUtils;

type
  point  = ^recpoint ;
  recpoint = record
              id_mhs : string ;
              nama : string ;
              alamat : string ;
              semester : integer ;
              next,prev : point ;
             end;
var
  head,now,tail : point ;
  jawab : char ;


procedure insertBefore ;
begin
  new(now) ;
  if head = nil  then
    begin
      head := now ;
      tail := now ;
    end
  else
    begin
      now^.prev := head ;
      head^.next := now ;
    end;
  now^.next :=tail ;
  tail^.prev := now ;
  tail := now ;
end;

begin
  writeln ('INPUT DATA');
  writeln ('____________________');
  writeln ;
  repeat
    insertBefore ;
    write('masukan id :') ;readln(now^.id_mhs);
    write('masukan nama :') ;readln(now^.nama);
    write('masukan alamat :') ;readln(now^.alamat);
    write('masukan semester :') ;readln(now^.semester);
    writeln;
    write('Apakah ingin input data lagi (Y/T)? :');readln(jawab);
    writeln ;
  until upcase(jawab) = 'T' ;

  writeln('OUTPUT DATA');
  writeln('-------------------');
  now := head ;    // output
  repeat
   writeln('ID       :', now^.id_mhs);
    writeln('nama     :', now^.nama);
    writeln('alamat   :', now^.alamat);
    writeln('semester :', now^.semester);
    writeln ;
    now := now^.next ;
  until (now^.next = head^.next) ;
readln ;
end.

No comments:

Post a Comment