LINKED LIST by Yohana N 1 Definisi Linked

  • Slides: 19
Download presentation
LINKED LIST by Yohana N 1

LINKED LIST by Yohana N 1

Definisi • Linked List adalah sejumlah objek (sering disebut simpul) yang dihubungkan satu dengan

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 /

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

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 : ¢

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

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

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.

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 =

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

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 =

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

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() {

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() {

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() {

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

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() {

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() {

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() {

Delete Simpul dari Linked List -3 ¢ DELETE TENGAH Algoritma : void Del_Tengah() { R = Q->Link ; Q->Link = R->Link; free(R); } 19