Pertemuan 10
Pertemuan 10
by Yohana N
1
Definisi
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
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
Instruksi :
struct simpul {
int Info;
struct simpul *Link;
};
simpul *First, * Last;
7
Proses
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