Circular Singly Linked List
Circular Singly Linked List
• Circular Singly Linked List adalah variasi singly linked list yang berbentuk melingkar.
• Bentuk melingkar ini memberikan konsekuensi tidak adanya field next yang bernilai null.
• Field Next elemen terakhir pada circular singly
linked list akan bernilai sama dengan nilai awal
list sehingga akan ada anak panah yang
berasal dari field next elemen terakhir menuju
field info elemen pertama
Circular Singly Linked List
Berikut ini adalah ciri – ciri Circular Singly Linked List:
• Mempunyai satu anak panah yang mengarah dari field Next ke filed Info
• Satu node terdiri dari dua field, info dan next
• Tidak mempunyai elemen terakhir
• Field next elemen ‘terakhir’ bernilai sama dengan awal list.
• Anak panah dari field next elemen terakhir
mengarah ke field info elemen pertama
Circular Singly Linked List
• Representasi dari ketiga list tersebut dapat dilihat pada gambar berikut:
'A' 'B' 'C' 'D'
Gambar Ilustrasi Circular Singly Linked List
Circular Singly Linked List
Pada Circular Singly Linked List Terdapat 6 operasi yaitu :
1. Menyisip di belakang 2. Menyisip di tengah 3. Menyisip di depan
4. Menghapus di belakang
5. Menghapus di tengah
6. Menghapus di depan
SINGLY LINKED LIST
ff00 'C'
ff01 ff0e
ff04 'A'
ff05 ff08
ff08 'B'
ff09 ff00
ff0e 'D'
ff0f ff04
Data Next
Data Next
Data Next
Data Next
Penunjuk ff3f
ff04
ff0b ff0c
Start
'A' 'B' 'C' 'D'
Penusuran :
Awal = ff04, maka info ff04 = ‘A’
Next ff04 = ff08, maka info ff08 = ‘B’
Next ff08 = ff00, maka info ff0e = ‘C’
Next ff00 = ff0e, maka info ff0e = ‘D’
Next ff0e = ff04, maka info ff04 = ‘A’
Dan seterusnya … List : ‘ABCDA…’
a. Operasi ini menambahkan elemen baru dibelakang elemen paling kanan pada circular singly linked list.
b. Berikut adalah langkah – langkah untuk menyisip di belakang pada circular singly linked list :
a. Elemen baru akan menjadi elemen terakhir b. Field next elemen baru = nilai awal list
c. Field next elemen terakhir dari list awal berubah = Predeseseor elemen baru
Operasi Menyisip di Belakang pada Circular
Singly Linked List
ff00 'C'
ff01 ff0e
ff04 'A'
ff05 ff08
ff08 'B'
ff09 ff00
ff0e 'D'
ff0f ff04
Data Next
Data Next
Data Next
Data Next
Penunjuk ff3f
ff04
ff0b ff0c
Start
'A' 'B' 'C' 'D'
'A' 'B' 'C' 'D'
CIRCULLAR SINGLY LINKED LIST
Menyisip di belakang :
1. Elemen baru akan menjadi elemen terakhir 2. Field next elemen baru = nilai awal list
3. Field next elemen terakhir dari list awal berubah = Predeseseor elemen baru
Operasi Menyisip di Tengah pada Circular Singly Linked List
1. Operasi menyisip di tengah pada circular singly linked list pada prinsipnya hampir sama dengan menyisip pada linear singly linked list yang pada implementasinya membutuhkan elemen bantu, setelah mempunyai elemen bantu maka elemen baru disisipkan pada sisi kanan elemen bantu.
2. Berikut adalah langkah – langkahnya : a. Memerlukan elemen bantu
b. Elemen batu diletakkan di sisi kanan elemen bantu c. Field next elemen bantu field info elemen baru d. Field next elemen baru field info elemen
berikutnya
CIRCULLAR SINGLY LINKED LIST
'A' 'B' 'C' 'D'
'A' 'B' 'C' 'D'
?
'A' 'B' 'C' 'D'
ff00 'C'
ff01 ff0e
ff04 'A'
ff05 ff08
ff08 'B'
ff09 ff00 ff0b
ff0e 'D'
ff0f ff04
Data Next
Data Next
Data Next
Data Next
ff08 Penunjuk
ff3f
ff0b ff0e
ff0b ff0c
Node Baru
Menyisip di tengah :
1. Memerlukan elemen bantu
2. Elemen batu diletakkan di sisi kanan elemen bantu 3. Field next elemen bantu field info elemen baru 4. Field next elemen baru field info elemen berikutnya
Operasi Menyisip di Depan pada Circular Singly Linked List
1. Operasi menyisip didepan pada circular singly linked adalah menambah elemen baru pada posisi paling kiri. Operasi menyisip di depan ini menggeser elemen paling depan dan elemen baru menjadi elemen paling depan.
2. Berikut ini adalah langkah – langkah untuk operasi menyisip di depan pada circular singly linked list :
a.Predesesor elemen baru = nilai awal list b.Elemen baru akan jadi elemen pertama
c.Field next elemen baru field info elemen berikutnya
CIRCULLAR SINGLY LINKED LIST
ff00 'C'
ff01 ff0e
ff04 'A'
ff05 ff08
ff08 'B'
ff09 ff00 ff0b
ff0e 'D'
ff0f ff04
Data Next
Data Next
Data Next
Data Next
ff08 Penunjuk
ff3f
ff0b ff0e
ff0b ff0c
Node Baru
'A' 'B' 'C' ‘D’
'A' 'B' 'C' 'D'
Menyisip di depan
1. Predesesor elemen baru = nilai awal list 2. Elemen baru akan jadi elemen pertama
3. Field next elemen baru field info elemen berikutnya
Operasi Menghapus di Belakang pada Circular Singly Linked List
1. Operasi menghapus di belakang pada circular singly linked list pada prinsipnya sama dengan menghapus di belakang pada linear singly linked list. Yang membedakan hanya elemen bantu pada list awal berubah menjadi elemen terakhir setelah operasi dilakukan.
2. Berikut adalah langkah – langkah untuk menghapus di belakang :
a.Memerlukan elemen bantu
b.Elemen bantu di sisi kiri elemen yang akan dihapus c.Setelah dihapus, elemen bantu jadi elemen terakhir
d.Field next elemen bantu berubah menjadi = nilai awal list
ff00 'C'
ff01 ff0e
ff04 'A'
ff05 ff08
ff08 'B'
ff09 ff00 ff0e
ff0e 'D'
ff0f NULL
Data Next
Data Next
Data Next
Data Next
ff04 Head
ff3f
ff08 Penunjuk
ff00 Node hapus
'A' 'B' 'C' 'D'
'A' 'B' 'C'
CIRCULLAR SINGLY LINKED LIST
Menghapus di belakang : 1. Memerlukan elemen bantu
2. Elemen bantu di sisi kiri elemen yang akan dihapus 3. Setelah dihapus, elemen bantu jadi elemen terakhir 4. Field next elemen bantu berubah menjadi = nilai
awal list
Operasi Menghapus di Tengah pada Circular Singly Linked List
1. Operasi menghapus di tengah pada circular singly linked list sama dengan operasi menghapus di tengah pada linear singly linked list.
2. Berikut ini adalah langkah – langkah untuk menghapus di tengah pada circular singly linked list.
a. Memerlukan elemen bantu
b. Elemen bantu di sisi kiri elemen yang akan di hapus
c. Setelah dihapus, field next elemen bantu field info Elemen berikutnya
CIRCULLAR SINGLY LINKED LIST
'A' 'B' 'C' 'D'
'A' 'B' 'C' 'D'
'A' 'B' 'D'
ff00 'C'
ff01 ff0e
ff04 'A'
ff05 ff08
ff08 'B'
ff09 ff00 ff0e
ff0e 'D'
ff0f NULL
Data Next
Data Next
Data Next
Data Next
ff04 Head
ff3f
ff08 Penunjuk
ff00 Node hapus
Menghapus di tengah :
1. Memerlukan elemen bantu
2. Elemen bantu di sisi kiri elemen yang akan di hapus 3. Setelah dihapus, field next elemen bantu field info
Elemen berikutnya
Operasi Menghapus di Depan pada Circular Singly Linked List
1. Operasi menghapus didepan pada circular singly linked list adalah operasi yang menghilangkan elemen paling kiri.
Secara prinsip teknisnya sama dengan menghapus di depan pada linear singly linked list.
2. Berikut ini adalah langkah – langkah untuk menghapus di depan pada circular singly linked list :
a. Memerlukan elemen bantu
b. Elemen bantu di sisi kanan elemen yang akan di hapus c. Setelah dihapus, awal list field info elemen bantu d. Setelah di hapus, elemen bantu jadi elemen pertama
ff00 'C'
ff01 ff0e
ff04 'A'
ff05 ff08
ff08 'B'
ff09 ff00 ff0e
ff0e 'D'
ff0f NULL
Data Next
Data Next
Data Next
Data Next
ff04 Head
ff3f
ff08 Penunjuk
ff00 Node hapus
'A' 'B' 'C' 'D'
'B' 'C' 'D'
CIRCULLAR SINGLY LINKED LIST
Menghapus di depan :
1. Memerlukan elemen bantu
2. Elemen bantu di sisi kanan elemen yang akan di hapus 3. Setelah dihapus, awal list field info elemen bantu 4. Setelah di hapus, elemen bantu jadi elemen pertama
Latihan Soal
1. Perhatikan table berikut
Predesesor Info Next
Awal = 3 A 2
2 B 3
Buatlah :
a. Gambarkan list awal
b. Buatlah penelusurannya
Latihan Soal
2. Perhatikan table berikut :
Predesesor Info Next
Awal = 3 A 2
2 B 3
Berdasarkan tabel diatas maka : a. Gambarkan list awal
b. Tambahkan elemen berikut :
Predesesor Info Next
1 C 3
Latihan Soal
3. Perhatikan table berikut :
Predesesor Info Next
2 2 3
Awal = 3 A 2
a. Gambarkan list awal
b. Tambahkan elemen berikut dari list awal :
Predesesor Info Next
2 1 4
Latihan Soal
4. Perhatikan table berikut :
Predesesor Info Next
Awal = 4 D 3
3 A 4
Predesesor Info Next
4 A 2
a. Gambarkan list awal
b. Tambahkan dari list awal :
Latihan Soal
Predesesor Info Next
2 2 1
Awal = 3 1 2
1 3 3
5. Perhatikan table berikut : a. Gambarkan list awal
b. Hapus elemen terakhir dari list awal
Latihan Soal
Predesesor Info Next
Awal = 1 A 3
2 A 4
3 R 2
4 H 1
6. Perhatikan table berikut : a.Gambarkan list awal
b.Hapus elemen terakhir dari list awal c.Hapus elemen pertama dari list b d.Hapus ‘R’ dari list c
Latihan Soal
Predesesor Info Next
5 I 1
Awal = 3 S 5
4 A 12
1 N 4
12 R 3
7. Perhatikan table berikut : a. Gambarkan list awal
b. Hapus elemen pertama dari list awal c. Hapus elemen terakhir dari list b
d. Hapus ‘A’ dari list c
Tugas1
Predesesor Info Next
5 I 1
Awal = 3 S 5
4 A 12
1 N 4
12 R 3
Predesesor Info Next
3 B 2
1. Perhatikan table berikut :
a. Gambarkan list awal
b. Hapus elemen pertama dari list awal c. Tambahkan elemen berikut dari list b :
d. Hapus elemen ‘R’ dari list c
Tugas2
2. Perhatikan table berikut :
Predesesor Info Next
Awal = 2 T 3
1 A 5
3 A 4
4 N 1
5 H 2
Predesesor Info Next
6 K 2
a. Gambarkan list awal
b. Hapus elemen ‘H’ dari list awal
c. Tambahkan elemen berikut dari list b :
d. Hapus elemen pertama dari list c
Tugas3
3. Perhatikan permintaan soal berikut :
a. Buat list awal dengan hasil : ‘AKSARA…’
b. Operasikan menjadi : ‘AKSAA…’
c. Operasikan menjadi : ‘ANKSAA…’
d. Operasikan menjadi : ‘ANGKSAA…’
e. Operasikan menjadi : ‘ANGKSA…’
f. Operasikan menjadi : ‘ANGKASA…’
Tugas4
2. Perhatikan permintaan soal berikut :
a. Buat list awal dengan hasil : ‘INTUISI…’
b. Operasikan menjadi : ‘INUISI…’
c. Operasikan menjadi : ‘INDUISI…’
d. Operasikan menjadi : ‘INDUSI…’
e. Operasikan menjadi : ‘INDUSTI…’
f. Operasikan menjadi : ‘INDUSTRI…’