diff --git a/Data Structures/Circular Linked List/Python/circularlinkedlist.py b/Data Structures/Circular Linked List/Python/circularlinkedlist.py new file mode 100644 index 00000000..15f31db0 --- /dev/null +++ b/Data Structures/Circular Linked List/Python/circularlinkedlist.py @@ -0,0 +1,55 @@ +#Represents the node of list. +class node: + def __init__(self,data): + self.data = data; + self.next = None; + +class createlist: + #Declaring head and tail pointer as null. + def __init__(self): + self.head = node(None); + self.tail = node(None); + self.head.next = self.tail; + self.tail.next = self.head; + + #This function will add the new node at the end of the list. + def add(self,data): + newnode = node(data); + #Checks if the list is empty. + if self.head.data is None: + #If list is empty, both head and tail would point to new node. + self.head = newnode; + self.tail = newnode; + newnode.next = self.head; + else: + #tail will point to new node. + self.tail.next = newnode; + #New node will become new tail. + self.tail = newnode; + #Since, it is circular linked list tail will point to head. + self.tail.next = self.head; + + #Displays all the nodes in the list + def display(self): + current = self.head; + if self.head is None: + print("List is empty"); + return; + else: + print("Nodes of the circular linked list: "); + #Prints each node by incrementing pointer. + print(current.data), + while(current.next != self.head): + current = current.next; + print(current.data), + + +class circularlinkedList: + cl = createlist(); + #Adds data to the list + cl.add(1); + cl.add(2); + cl.add(3); + cl.add(4); + #Displays all the nodes present in the list + cl.display();