Kamis, 19 Juli 2012

Double LinkedList Circular


Double Linked List Circula 
•          Double: artinya field pointer-nya terdiri dari dua buah dan dua arah, yaitu prev dan next
•          Linked List: artinya node-node tersebut saling terhubung satu sama lain.
•          Circular: artinya pointer next dan prev-nya menunjuk ke dirinya sendiri
          Setiap node pada linked list mempunyai field yang berisi data dan pointer ke node 
       berikutnya & ke node sebelumnya
           •     Untuk pembentukan node baru, mulanya pointer next dan prev akan menunjuk ke
                 dirinya sendiri
           •        Jika sudah lebih dari satu node, maka pointer prev akan menunjuk ke node
                 sebelumnya, dan pointer next akan menunjuk ke node sesudahnya.
           
  Deklarasi node

Dibuat dari struct berikut ini:
typedef struct TNode{
                                int data;
                                TNode *next;
                                Tnode *prev;
                                   };
Pembentukan node baru

      •     Digunakan keyword new yang berarti mempersiapkan sebuah node baru berserta 
          alokasi memorinya.
   TNode *baru;
   baru = new TNode;
   baru->data = databaru;
   baru->next = baru;
   baru->prev = baru;
·                              Penambahan data di depan

            Penambahan node baru akan dikaitan di node paling depan, namun pada saat pertama kali (data masih kosong), maka penambahan data dilakukan pada head nya.
Pada prinsipnya adalah mengkaitkan data baru dengan head, kemudian head akan menunjuk pada data baru tersebut sehingga head akan tetap selalu menjadi data terdepan.  Untuk menghubungkan node terakhir dengan node terdepan dibutuhkan pointer bantu.

Tidak ada komentar:

Posting Komentar