Saturday, December 28, 2024

Circular Linked List Python



# 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
------------------------------------------------------

No comments:

Post a Comment

virtual environment on python on Ubuntu

 # 1. Update system and install Python tools sudo apt update && sudo apt install python3-pip python3-venv -y # 2. Setup Django in a ...