• Tidak ada hasil yang ditemukan

Circular Singly Linked List

N/A
N/A
Protected

Academic year: 2022

Membagikan "Circular Singly Linked List"

Copied!
29
0
0

Teks penuh

(1)

Circular Singly Linked List

(2)

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

(3)

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

(4)

Circular Singly Linked List

• Representasi dari ketiga list tersebut dapat dilihat pada gambar berikut:

'A' 'B' 'C' 'D'

Gambar Ilustrasi Circular Singly Linked List

(5)

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

(6)

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…’

(7)

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

(8)

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

(9)

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

(10)

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

(11)

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

(12)

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

(13)

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

(14)

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

(15)

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

(16)

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

(17)

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

(18)

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

(19)

Latihan Soal

1. Perhatikan table berikut

Predesesor Info Next

Awal = 3 A 2

2 B 3

Buatlah :

a. Gambarkan list awal

b. Buatlah penelusurannya

(20)

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

(21)

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

(22)

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 :

(23)

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

(24)

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

(25)

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

(26)

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

(27)

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

(28)

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…’

(29)

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…’

Referensi

Dokumen terkait

Menambah sebuah node pada doubly linked list. Menghapus sebuah node dari doubly

Karena double linked list memiliki dua pointer sambungan, maka penyisipan bisa dilakukan sebelum data tertentu atau sesudah data tertentu, berbeda dengan single linked list yang

PRODI TEKNIK TEKNIK INFORMATIKA INFORMATIKA UKDW UKDW by by Antonius Antonius Rachmat Rachmat C, C, S.Kom  S.Kom  Pada prinsipnya adalah mengkaitkan data baru

Fungsi mengupdate data – Waktu eksekusi binary search tree lebih cepat daripada circular double linked list karena fungsi dari update sendiri sama dengan mencari.

Operasi ini akan menyisipkan elemen baru (berupa alamatnya) sebagai elemen setelah elemen tertentu di linked list. Skema penyisipan ini digambarkan sebagai berikut:.. a)

 Operasi pada double linked list terdiri dari operasi cetak, sisip dan hapus  Operasi cetak dapat dilakukan dari head ke tail atau dari tail ke head  Operasi sisip terdiri dari

 Linked list didefinisikan sebagai kumpulan elemen dimana setiap elemen merupakan bagian dari sebuah simpul (node) yang juga berisi kaitan ke sebuah simpul yang lain [2].. 

Pointer next elemen sebelumnya menunjuk ke elemen baru Insert sebelum node tertentu Statement untuk insert setelah node tertentu dari linked list adalah sebagai berikut: void