LINKED LIST by Yohana N
Definisi Linked List adalah sejumlah objek (sering disebut simpul) yang dihubungkan satu dengan lainnya sehingga membentuk rangkaian. Objek : structure atau record. Untuk menghubungkan objek satu dg lainnya digunakan pointer.
Ilustrasi Linked List yang terdiri dari 4 objek / simpul. Objek / simpul dibuat satu per satu bukan sekaligus. X (1) (2) (3) (4) H1000 H800 H1400 H1100
Struktur Linear Singly-Linked List Linear Doubly-Linked List Ada 4 macam struktur Linked List : Linear Singly-Linked List Linear Doubly-Linked List Circular Singly-Linked List Circular Doubly-Linked List
Linear Singly-Linked List Merupakan Linked List lurus dengan pointer tunggal. Ilustrasi : 25 12 17 10 First Last (1) (2) (3) (4)
Simpul Ilustrasi sebuah simpul dg 2 elemen / field : INFO LINK Nama field : LINK Tipe : pointer Isi : alamat simpul / record berikutnya Nama field : INFO Tipe : integer/char/real Isi : data
Membuat Struktur Simpul Instruksi : struct simpul { int Info; struct simpul *Link; }; simpul *First, * Last;
Proses Ada 4 proses dasar dalam Linked List : Inisialisasi Membuat simpul baru. Membuat simpul awal. Menambahkan simpul baru ke dalam Linked List (INSERT) Menghapus sebuah simpul dari Linked List (DELETE)
Inisialisasi Proses awal menyatakan Linked List belum ada. Algoritma : Ilustrasi Proses : First = Null; Last = Null; \0 First \0 Last
Membuat Simpul Baru Instruksi : Algoritma : P = (simpul *) malloc(sizeof(simpul)); void Buat_Simpul(int x) { P = (simpul *) malloc(sizeof(simpul)); if (P != NULL) { P -> Info = x; } else cout<<“Simpul gagal dibuat ”; }
Membuat Simpul Awal Algoritma : Syarat : Linked List belum ada. Sudah ada simpul yang akan dijadikan simpul awal. void Awal() { First = P; Last = P; P -> Link = NULL; }
Insert Simpul ke Linked List KANAN/AKHIR KIRI/AWAL TENGAH Syarat : Linked List sudah ada. Sudah ada simpul yang akan ditambahkan ke Linked List.
Insert Simpul ke Linked List -1 INSERT KANAN/AKHIR Algoritma : void Ins_Akhir() { Last -> Link = P; Last = P; P -> Link = NULL; }
Insert Simpul ke Linked List -2 INSERT KIRI/AWAL Algoritma : void Ins_Awal() { P -> Link = First; First = P; }
Insert Simpul ke Linked List -3 INSERT TENGAH Algoritma : void Ins_Tengah() { P -> Link = Q ->Link; Q -> Link = P; }
Delete Simpul dari Linked List KANAN/AKHIR KIRI/AWAL TENGAH Syarat : Linked List sudah ada.
Delete Simpul dari Linked List -1 DELETE KANAN/AKHIR Algoritma : void Del_Akhir() { free(Last); Last = Q; Last -> Link = NULL; }
Delete Simpul dari Linked List -2 DELETE KIRI/AWAL Algoritma : void Del_Awal() { Q = First; First = Q -> Link; free(Q); }
Delete Simpul dari Linked List -3 DELETE TENGAH Algoritma : void Del_Tengah() { R = Q->Link ; Q->Link = R->Link; free(R); }