Title: LINKED LIST
1LINKED LIST
2Definisi
- 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.
3Ilustrasi
- Linked List yang terdiri dari 4 objek / simpul.
- Objek / simpul dibuat satu per satu bukan
sekaligus.
4Struktur
- Ada 4 macam struktur Linked List
- Linear Singly-Linked List
- Linear Doubly-Linked List
- Circular Singly-Linked List
- Circular Doubly-Linked List
5Linear Singly-Linked List
- Merupakan Linked List lurus dengan pointer
tunggal. - Ilustrasi
6Simpul
- Ilustrasi sebuah simpul dg 2 elemen / field
7Membuat Struktur Simpul
- Instruksi
- struct simpul
- int Info
- struct simpul Link
-
- simpul First, Last
8Proses
- 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)
9Inisialisasi
- Proses awal ? menyatakan Linked List belum ada.
- Algoritma
- Ilustrasi Proses
-
First Null Last Null
10Membuat Simpul Baru
P (simpul ) malloc(sizeof(simpul))
void Buat_Simpul(int x) P (simpul )
malloc(sizeof(simpul)) if (P ! NULL) P -gt
Info x else coutltltSimpul gagal dibuat
11Membuat Simpul Awal
- Syarat
- Linked List belum ada.
- Sudah ada simpul yang akan dijadikan simpul awal.
void Awal() First P Last P P -gt Link
NULL
12Insert Simpul ke Linked List
- INSERT
- KANAN/AKHIR
- KIRI/AWAL
- TENGAH
-
- Syarat
- Linked List sudah ada.
- Sudah ada simpul yang akan ditambahkan ke Linked
List.
13Insert Simpul ke Linked List -1
- INSERT KANAN/AKHIR
- Algoritma
void Ins_Akhir() Last -gt Link P Last
P P -gt Link NULL
14Insert Simpul ke Linked List -2
- INSERT KIRI/AWAL
- Algoritma
void Ins_Awal() P -gt Link First First
P
15Insert Simpul ke Linked List -3
void Ins_Tengah() P -gt Link Q -gtLink Q -gt
Link P
16Delete Simpul dari Linked List
- DELETE
- KANAN/AKHIR
- KIRI/AWAL
- TENGAH
- Syarat
- Linked List sudah ada.
17Delete Simpul dari Linked List -1
- DELETE KANAN/AKHIR
- Algoritma
void Del_Akhir() free(Last) Last Q Last
-gt Link NULL
18Delete Simpul dari Linked List -2
- DELETE KIRI/AWAL
- Algoritma
void Del_Awal() Q First First Q -gt
Link free(Q)
19Delete Simpul dari Linked List -3
void Del_Tengah() R Q-gtLink Q-gtLink
R-gtLink free(R)