Serch

Translate

Follower

free counters
Get this Widget and Desaign!
Selasa, 06 Desember 2011
Operasi – operasi pada List berpointer Ganda

Pendeklarasian pada program pascal :
Type
        Info_Type = integer;
        List = ^ElmList;
        ElmList = Record
        Info : Info_Type;
        Sebelum, Berikut : List;
      End;

a. Kunjungan pada setiap elemen :
  • Pointer Sebelum tidak digunakan.
  • Algoritma sama dengan Linked List pointer tunggal
b. Penyisipan sebagai elemen pertama
    Procedure SisipAwListGanda (var Kepala : List; P : List);
    Begin
             P^. Berikut := Kepala;
             If Kepala <> Nil Then
                       Kepala^. Sebelum := P;
             Kepala := P;
             P^. Sebelum := Nil;
       End;

c. Penyisipan sebagai elemen terakhir :

    Procedure SisipAkListGanda (Var Kepala : List; P : List);
    Begin
           PencElemenAkhir (Kepala, Q); {Pemanggilan Prosedur PencElemen Akhir}
           P^. Berikut := Nil;
                 P^. Sebelum := Q; {Q : Alamat elemen terakhir atau Nil}
           If (Q <> Nil) then
              Q^. Berikut := P;
        End;
 
d. Penyisipan sebagai suksesor dari Q

    Procedure SisipSesudahListGanda (var P : List; Q : List);
          Begin
                   P^. Berikut := Q^. Berikut;
                   P^. Sebelum := Q;
                          If (Q^. Berikut <> Nil) Then
                            Q^. Berikut^. Sebelum := P;
                             Q^. Berikut := P;
                     End;

e. Penghapusan elemen pertama

    Procedure HapusElmPtmListGanda (var Kepala : List; P : List);
      Begin
                 If (Kepala <> Nil) then
                        Begin
                                P:= Kepala;
                                Kepala := Kepala^. Berikut;
                  Dispose (P);
                         If (Kepala <> Nil) Then {sisa tidak kosong}
                         Kepala^. Sebelum := Nil;
                   End;
            End;
 
f. Penghapusan elemen terakhir

   Procedure HapusElmAkhListGanda (var Kepala : List; P : List);
    Var
        Q : List;
    Begin
              If (Kepala <> Nil) then
               Begin
                        If (Kepala^. Berikut = Nil) then
                   Begin
                          Dispose (Kepala);
                          Kepala := Nil;
                    End
                               Else
           Begin
                      PencElemenAkhir(Kepala, Q);
                      P := Q^. Sebelum;
                Dispose (Q);
                   P^. Berikut := Nil;
               End;
        End;
End;


Sumber dari : http://www.yudasy.web.id

0 comments: