Thursday, February 5, 2015

Linked List

Linked List adalah sekumpulan elemen bertipe sama yang mempunyai keterurutan tertentu, yang setiap elemennya terdiri dari dua bagian. Struktur berupa rangkaian elemen saling berkait dimana setiap elemen dihubungkan elemen lain melalui pointer (alamat elemen). Penggunaan pointer untuk mengacu elemen berakibat elemen-elemen bersebelahan secara logik, walau tidak bersebelahan secara fisik di memori.

Bentuk Umum linked list :
typedef struct telmtlist
        {
           infotype info;
           address next;
        } 
Infotype : sebuah tipe terdefinisi yang menyimpan informasi sebuah elemen list.
Next : address dari elemen berikutnya (suksesor)

Jika L adalah list, dan P adalah address, maka alamat elemen pertama list L dapat diacu dengan notasi : first (L)
Sebelum digunakan harus dideklarasikan terlebih dahulu : #define first (L) (L) Elemen yang diacu oleh P dapat dikonsultasi informasinya dengan notasi : info (P) deklarasi #define info (P) (P) - info
Next (P) deklarasi #define next (P) (P) - next Beberapa definisi :
  1. List 1 adalah kosong, jika First(L)=Nil.
  2. Elemen terakhir dikenali, dengan salah satu cara adalah karena Next(Last)=Nil. Nil adalah pengganti Null, perubahan ini dituliskan dengan #define Nil Null.
Single Linked List
Setiap node memiliki pointer yang menunjuk ke simpul berikutnya sehingga terbentuk satu untaian, dengan demikian hanya diperlukan sebuah variable pointer. Susunan berupa untaian semacam ini disebut Single Linked List (NULL memiliki nilai khusus yang artinya tidak menunjuk ke mana-mana, biasanya Linked List pada titik akhirnya akan menunjuk ke NULL).

Pembuatan Single Linked List dapat menggunakan 2 metode :
  1. LIFO (Last In First Out), aplikasinya: Stack (tumpukan)
  2. FIFO (First In First Out), aplikasinya: Queue (antrian)
Double Linked List
Salah satu kelemahan Single Linked List adalah pointer hanya dapat bergerak satu arah saja, maju/mundur, kanan/kiri, sehingga pencarian data pada Single Linked List hanya dapat bergerak dalam satu arah saja. Untuk mengatasi kelemahan tersebut, dapat menggunakan metode Double Linked List. Linked List ini dikenal dengan nama Linked List berpointer ganda atau Double Linked List.

Circular Double Linked List
Circular double linked list Merupakan Double Linked List yang simpul terakhirnya menunjuk ke simpul terakhirnya menunjuk ke simpul awalnya menunjuk ke simpul akhir, sehingga membentuk suatu lingkaran.




No comments:

Post a Comment

Copy Rights 2013 PlanetX86