LINKED LIST by Yohana N 1 Definisi Linked
LINKED LIST by Yohana N 1
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. 2
Ilustrasi ¢ ¢ Linked List yang terdiri dari 4 objek / simpul. Objek / simpul dibuat satu per satu bukan sekaligus. (2) X (1) (4) H 800 X X (3) H 1000 X H 1400 3 H 1100
Struktur ¢ Ada 4 macam struktur Linked List : 1. 2. 3. 4. 4 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 : ¢ First 5 Last (1) (2) (3) (4) 25 12 17 10
Simpul LINK Ilustrasi sebuah simpul dg 2 elemen / field : INFO ¢ Nama field : LINK Tipe : pointer Isi : alamat simpul / record berikutnya Nama field : INFO Tipe : integer/char/real Isi : data 6
Membuat Struktur Simpul ¢ 7 Instruksi : struct simpul { int Info; struct simpul *Link; }; simpul *First, * Last;
Proses ¢ Ada 4 proses dasar dalam Linked List : 1. 2. 3. 4. 5. 8 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 : ¢ First = Null; Last = Null; ¢ Ilustrasi Proses : First 9 Last
Membuat Simpul Baru ¢ Instruksi : P = (simpul *) malloc(sizeof(simpul)); ¢ 10 Algoritma : 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 : 1. void Awal() { First = P; Last = P; P -> Link = NULL; } 11 2. Linked List belum ada. Sudah ada simpul yang akan dijadikan simpul awal.
Insert Simpul ke Linked List INSERT : ¢ 1. 2. 3. KANAN/AKHIR KIRI/AWAL TENGAH Syarat : 1. 2. Linked List sudah ada. Sudah ada simpul yang akan ditambahkan ke Linked List. 12
Insert Simpul ke Linked List -1 ¢ INSERT KANAN/AKHIR Algoritma : void Ins_Akhir() { Last -> Link = P; Last = P; P -> Link = NULL; } 13
Insert Simpul ke Linked List -2 ¢ INSERT KIRI/AWAL Algoritma : void Ins_Awal() { P -> Link = First; First = P; } 14
Insert Simpul ke Linked List -3 ¢ INSERT TENGAH Algoritma : void Ins_Tengah() { P -> Link = Q ->Link; Q -> Link = P; } 15
Delete Simpul dari Linked List ¢ DELETE : 1. 2. 3. KANAN/AKHIR KIRI/AWAL TENGAH Syarat : 1. Linked List sudah ada. 16
Delete Simpul dari Linked List -1 ¢ DELETE KANAN/AKHIR Algoritma : void Del_Akhir() { free(Last); Last = Q; Last -> Link = NULL; } 17
Delete Simpul dari Linked List -2 ¢ DELETE KIRI/AWAL Algoritma : void Del_Awal() { Q = First; First = Q -> Link; free(Q); } 18
Delete Simpul dari Linked List -3 ¢ DELETE TENGAH Algoritma : void Del_Tengah() { R = Q->Link ; Q->Link = R->Link; free(R); } 19
- Slides: 19