Langsung ke konten utama

Operasi Penyisipan dan Penghapusan Pada Circular Linked List

    Hai Gais! 
    
    Kali ini saya akan share materi tentang Circular pada Single dan Double Linked List, Konsepnya hampir sama namun yang membedakkan di Circular tidak ada node akhir atau null.

    Ada 2 Jenis Circular Linked List sebagai berikut :


berikut operasi pada Circular Linked List , sebagai berikut :

1. Penciptaan

Penciptaan  adalah  memberikan  nilai  nil  terhadap  variabel  pointer  awal  dan  

variabel pointer akhir.  


2. Penyisipan

a. Penyisipan di Depan
Pada Single Linked List :
Pada Double Linked List :



b. Penyisipan di Belakang

Pada Single Linked List :


c.Penyisipan di Tengah

Pada Single Linked List :
3. Penghapusan

a. Penghapusan di Depan




b. Penghapusan di Tengah

Yang dimaksud dengan penghapusan simpul tengah adalah menghapus simpul tertentu yang ada pada posisi tengah. Misalkan kita memiliki suatu Circular Singly Linked List yang terdiri dari 5 simpul dan masing-masing simpul berisi informasi A, B, C, D, dan E. Kita akan menghapus simpul yang berada di posisi tengah, yaitu simpul yang berisi informasi D. Adapun langkah-langkah penghapusan tengah tersebut adalah sebagai berikut:

  • Simpul depan yang ditunjuk oleh CL ditunjuk juga oleh pointer bantu (Bantu = CL).
  • Gerakan pointer bantu hingga satu simpul sebelum simpul yang akan dihapus (while(Bantu->Kanan->Isi != ‘D’) Bantu = Bantu->Kanan).
  • Simpul berikutnya ditunjuk pointer hapus (Hapus = Bantu->Kanan).
  • Pointer kanan dari bantu menunjuk kanan hapus (Bantu->Kanan = Hapus->Kanan).
  • Pointer kanan hapus menunjuk hapus (Hapus->Kanan = Hapus).

c. Penghapusan di Belakang

Menghapus simpul yang ada pada posisi belakang. Langkah-langkah penghapusan simpul pada posisi belakang adalah sebagai berikut:

  • Simpul depan yang ditunjuk oleh CL ditunjuk juga oleh pointer bantu (Bantu = CL).
  • Gerakkan pointer bantu hingga satu simpul sebelum simpul belakang (while(Bantu->Kanan->Kanan != CL) Bantu = Bantu->Kanan).
  • Simpul belakang ditunjuk oleh pointer hapus (Hapus = Bantu->Kanan).
  • Pointer kanan dari bantu menunjuk CL (Bantu->Kanan = CL).
  • Pointer kanan hapus menunjuk hapus (Hapus->Kanan = Hapus).





Nah, begitu gaes, mudah-mudahan tidak puas dan terus mencari jawabannya, terimakasih atas perhatiannya :).



 

Komentar