kali ini saya akan memposting tentang circular list atau bisaa dibilang untaian melingkar.untaian melingkar(circular list) merupakan salah satu dari list yang digunakan dalam menstrukturkan data tanpa banyak basa basi lagi lansung saja saya sudah mengumpulkan dari berbagai sumber yang ada semoga
bermanfaat.
Circular
list adalah double / single
Linked List yang simpul terakhirnya menunjuk ke simpul awal, dan simpul awalnya menunjuk ke simpul akhir, atau dapat disebut Linked List yang dibuat seakan-akan merupakan sebuah lingkaran dengan titik awal dan titik akhir saling bersebelahan jika Linked List tersebut masih kosong.Circular list adalah bentuk lain dari linked list yang memberikan fleksibilitas dalam melewatkan elemen. Circular
list bisa berupa single
linked list atau double
linked list, tetapi tidak mempunyai tail. Pada circular
list, pointer next dari elemen terakhir menunjuk ke elemen pertama dan bukan menunjuk NULL. Pada double
linked circular list,
pointer prev dari elemen pertama menunjuk ke elemen terakhir.Pada circular linked
list, data/node pertama(head) akan terhubung dengan node/data terakhir(tail), sehingga akan membentuk pola seperti lingkaran. Pada circular linked list
ini, maka tidak terdapat pointer yang menunjuk ke NULL, karena tail->next=head dan juga head->prev=tail(pada double linked list) atau hanya ada tail->next=head pada single linked list.
•Operasi pada Circular list
•Insert
Insert berfungsi untuk menambahkan sebuah elemen baru ke dalam suatu linked list.
•Langkah-langkah untuk proses dibawah adalah sebagai berikut:
•1.
Telusuri list sampai elemen tertentu, catat juga elemen sebelumnya
•2.
Lakukan penyisipan sebelum elemen tertentu tersebut
•class
Link (object):
def __init__
(self, data, next = None):
self.data = data
self.next = next
class CircularList(object):
def
__init__(self):
self.first = None
# Insert an
element in the list
def insert (
self, item ):
newLink = Link (item)
current = self.first
if (current ==
None):
self.first = newLink
return
while (current.next != None):
current = current.next
current.next = newLink
newLink.next = self.first
•Delete
•Delete
Now:untuk menghapus elemen yang ditunjuk oleh elemen sekarang.Jika elemen utama dari link list (head) maka head akan berpindah ke elemen berikutnya.
•Delete
Head :untuk menghapus elemen yang di tunjuk head maka head akan berpindah ke elemen selanjutnya.
•def
delete(head, value):
curr = head
prev = curr.next
while prev.next != head:
prev = prev.next
if curr.value == value:
prev.next = curr.next curr = curr.next
prev = prev.next
while curr.value != value and curr != head:
curr = curr.next
prev = prev.next
if curr.value == value:
prev.next = curr.next
•Search
#The
structure of ListNode
class ListNode:
def
__init__(self, val):
self.val = val
self.next = None
# Supposes you have a circular linked list and you have
a reference to head. You can do as follows to print the whole list.
current = head.next
while current != head: # stop when it comes back to head
print
current.val
current = current.next
itulah tadi sedikit pembahasan tentang circular list semoga bermanfaat bagi kita semua
Komentar
Posting Komentar