 
  Data Structure Data Structure
 Networking Networking
 RDBMS RDBMS
 Operating System Operating System
 Java Java
 MS Excel MS Excel
 iOS iOS
 HTML HTML
 CSS CSS
 Android Android
 Python Python
 C Programming C Programming
 C++ C++
 C# C#
 MongoDB MongoDB
 MySQL MySQL
 Javascript Javascript
 PHP PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Python program to insert a new node at the beginning of the Circular Linked List
When it is required to insert a new node at the beginning of a circular linked list, a 'Node' class needs to be created. In this class, there are two attributes, the data that is present in the node, and the access to the next node of the linked list.
In a circular linked list, the head and the rear are adjacent to each other. They are connected to form a circle, and don't have 'NULL' value in the last node.
Another class needs to be created that would have an initialization function, and the head of the node would be initialized to 'None'.
Multiple methods are defined by the user to add node at the beginning of the linked list, and to print the node values.
Below is a demonstration for the same −
Example
class Node:      def __init__(self,data):         self.data = data       self.next = None       class list_creation:      def __init__(self):         self.head = Node(None)         self.tail = Node(None)         self.head.next = self.tail         self.tail.next = self.head      def add_at_beginning(self,my_data):         new_node = Node(my_data);         if self.head.data is None:          self.head = new_node;          self.tail = new_node;          new_node.next = self.head;         else:            temp = self.head;            new_node.next = temp;            self.head = new_node;            self.tail.next = self.head;              def print_it(self):         curr = self.head;         if self.head is None:            print("The list is empty");            return;         else:            print(curr.data),            while(curr.next != self.head):               curr = curr.next;               print(curr.data),            print("\n");       class circular_linked_list:      my_cl = list_creation()    print("Values are being added to the list")    my_cl.add_at_beginning(21);      my_cl.print_it();      my_cl.add_at_beginning(53);      my_cl.print_it();      my_cl.add_at_beginning(76);    my_cl.print_it();   Output
Values are being added to the list 21 53 21 76 53 21
Explanation
- The 'Node' class is created.
- Another class with required attributes is created.
- Another method named 'add_at_beginning' is defined, that is used to add data to the circular linked list at the beginning, i.e before the 'head' node.
- Another method named 'print_it' is defined, that displays the nodes of the circular linked list.
- An object of the 'list_creation' class is created, and the methods are called on it to add data.
- An 'init' method is defined, that the first and last nodes of the circular linked list to None.
- The 'add_at_beginning' method is called.
- It gets the head of the linked list, add an element before it, and references its address to the tail pointer and to the next pointer.
- This is displayed on the console using the 'print_it' method.
Advertisements
 