# python circular linked list
class Node:
def __init__(self,data):
self.data = data
self.next = None
class cl:
def __init__(self):
self.head = None
def is_empty(self):
return self.head is None
def insert(self,value):
new_node = Node(value)
if self.is_empty():
self.head = new_node
new_node.next = self.head
else:
current = self.head
while current.next != self.head :
current = current.next
current.next = new_node
new_node.next = self.head
self.head = new_node
def display(self):
current = self.head
while current.next != self.head :
print(current.data,'<->',end='')
current = current.next
print()
def delete(self,value):
current = self.head
while current.next != self.head:
if current.data == value:
current.data = None
current.data = current.next.data
current.next = current.next.next
current = current.next
print("deleted.")
self.display()
def update(self,value,alternate):
current = self.head
while current.next != self.head:
if current.data == value:
current.data = alternate
current = current.next
print("updated.")
self.display()
def size(self):
current = self.head
size=0
while current.next != self.head:
size+=1
current = current.next
print(f"size of circular linked list: \n{size}")
l = cl()
for i in range(10):
l.insert(i)
l.display()
l.delete(5)
l.insert(55)
l.display()
l.delete(1)
l.update(6,66)
l.size()
-----------------------------------------------------
output:
-----------------------------------------------------
9 <->8 <->7 <->6 <->5 <->4 <->3 <->2 <->1 <->
deleted.
9 <->8 <->7 <->6 <->4 <->3 <->2 <->1 <->
55 <->9 <->8 <->7 <->6 <->4 <->3 <->2 <->1 <->
deleted.
55 <->9 <->8 <->7 <->6 <->4 <->3 <->2 <->
updated.
55 <->9 <->8 <->7 <->66 <->4 <->3 <->2 <->
size of circular linked list:
8
------------------------------------------------------