Anda di halaman 1dari 19

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)
H800 (4)
X X
H1000 (3)
H1100
X

H1400

3
Struktur
 Ada 4 macam struktur Linked List :
1. Linear Singly-Linked List
2. Linear Doubly-Linked List
3. Circular Singly-Linked List
4. Circular Doubly-Linked List

4
Linear Singly-Linked List

 Merupakan Linked List lurus dengan


pointer tunggal.
 Ilustrasi :

First Last
(1) (2) (3) (4)

25 12 17 10

5
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
6
Membuat Struktur Simpul

 Instruksi :
struct simpul {
int Info;
struct simpul *Link;
};
simpul *First, * Last;

7
Proses

 Ada 4 proses dasar dalam Linked


List :
1. Inisialisasi
2. Membuat simpul baru.
3. Membuat simpul awal.
4. Menambahkan simpul baru ke
dalam Linked List (INSERT)
5. Menghapus sebuah simpul dari
Linked List (DELETE)
8
Inisialisasi
 Proses awal  menyatakan Linked
List belum ada.
 Algoritma :

First = Null;
Last = Null;

 Ilustrasi Proses :
\0 \0
First Last
9
Membuat Simpul Baru
 Instruksi :
P = (simpul *) malloc(sizeof(simpul));
 Algoritma :
void Buat_Simpul(int x)
{
P = (simpul *) malloc(sizeof(simpul));
if (P != NULL)
{ P -> Info = x; }
else
cout<<“Simpul gagal dibuat ”;
10 }
Membuat Simpul Awal

 Algoritma : Syarat :
1. Linked List belum ada.
void Awal() 2. Sudah ada simpul yang
akan dijadikan simpul
{
awal.
First = P;
Last = P;
P -> Link = NULL;
}

11
Insert Simpul ke Linked List

 INSERT :
1. KANAN/AKHIR
2. KIRI/AWAL
3. TENGAH

Syarat :
1. Linked List sudah ada.
2. 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. KANAN/AKHIR
2. KIRI/AWAL
3. 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

Anda mungkin juga menyukai