Serch

Translate

Follower

free counters
Get this Widget and Desaign!
Minggu, 04 Desember 2011
Varian Linked List
   Varian Linked List adalah Linked List yang tidak sesederhana representasi di atas.

1. List Berkait dengan kepala dan ekor.
    Kepala = Ekor = Nil → untuk List Kosong
    Kepala = Ekor <> Nil → List beranggotakan 1 elemen

 

2. List Sirkuler.


3. List dengan pointer ganda (Double Linked List).


4. List beranak bertingkat (menggunakan field pointer tambahan untuk kepala ke list anak).


5. List kombinasi dari varian-varian tersebut.

Operasi-operasi pada List Sirkuler

a. Kunjungan pada tiap elemen
     Procedure PlrListSirkuler (var Kepala : List);
     Begin
                 If (Kepala <> Nil) then
                 Begin
                          P:= Kepala;
                          Repeat
                          Proses (P);
                                     P:= P^. Berikut;
                                     Until P = Kepala;
                                 End;
                          End;

b. Sisipkan elemen baru
    Sebagai elemen pertama :
     Procedure SisipPtmSirkuler (var Kepala : List);
     Var
           Q : List;
            Begin
                    If (Kepala = Nil) then
                     Begin
                             Kepala := P;
                            P^. Berikut := Kepala ; {menunjuk dirinya sendiri}
                        End
                                Else
                       Begin
                               Q := Kepala;
                               While (Q^. Berikut <> Kepala) Do {menunjuk kepala / link
                               Q := Q^.Berikut; sirkulernya}
                               P^. Berikut := Kepala;
                               Q^. Berikut := P;
                               Kepala := P;
                         End;
                   End;

     Sebagai elemen terakhir :
     Procedure SisipAkrSirkuler (var Kepala : List; P : List);
     Var
         Q : List;
          Begin
                  If (Kepala = Nil) Then
                  Kepala := P
               Else
                    Begin
                           Q := Kepala;
                          While (Q ^. Berikut <> Kepala) do {menunjuk Kepala / Link
                           Q := Q^. Berikut; sirkulernya}
                           Q^. Berikut := P;
                      End;
                          P^. Berikut := Kepala;
                End;


c. Penghapusan Elemen List Sirkuler
    Penghapusan Elemen Pertama List Sirkuler :
    Procedure HapusElmPertamaListSirkuler (Var Kepala : List);
       Var
               P : List;
                 Begin
                       If Kepala <> Nil Then
                     Begin
                           If Kepala^. Berikut = Kepala Then
              Begin
                       Dispose (Kepala);
                       Kepala := Nil;
                End
                        Else {If Kepala^. Berikut <> Kepala Then}
                     Begin
                              P := Kepala;
                              Kepala := Kepala^. Berikut;
                             While Kepala^. Berikut <> P do
                              Kepala := Kepala^. Berikut;
                       End;
                         Kepala^. Berikut := P^. Berikut;
                         Dispose (P);
                    End;
              End;
       End;

   Penghapusan Elemen Terakhir List Sirkuler :
   Procedure HapusElmAkhirListSirkuler (Var Kepala : List);
   Var
            PreAkhir, P : List;
      Begin
               If Kepala <> Nil Then
                Begin
                       If Kepala^. Berikut = Kepala Then
                        Begin
                                  Dispose (Kepala);
                                  Kepala := Nil;
                              End
                                    Else
                             Begin
                                   P := Kepala;
                                   While P^. Berikut <> Kepala do
                       Begin
                       PreAkhir := P;
                       P:= P^. Berikut;
                   End;
                          PreAkhir^. Berikut := Kepala;
                          Dispose (P);
                End;
            End;
    End;


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

0 comments: