जब सर्कुलर लिंक्ड लिस्ट की शुरुआत में एक नया नोड इन्सर्ट करने की आवश्यकता होती है, तो एक 'Node' क्लास बनाने की आवश्यकता होती है। इस क्लास में दो एट्रिब्यूट्स होते हैं: नोड में मौजूद डेटा, और लिंक्ड लिस्ट के अगले नोड तक पहुंच।
सर्कुलर लिंक्ड लिस्ट में, हेड और रियर एक-दूसरे के निकट होते हैं। वे एक सर्कल बनाने के लिए जुड़े होते हैं, और अंतिम नोड में 'NULL' वैल्यू नहीं होता।
एक और क्लास बनाने की आवश्यकता होती है जिसमें एक इनिशियलाइज़ेशन फ़ंक्शन हो, और नोड के हेड को 'None' से इनिशियलाइज़ किया जाता है।
लिंक्ड लिस्ट की शुरुआत में नोड जोड़ने और नोड वैल्यूज़ प्रिंट करने के लिए यूज़र द्वारा कई मेथड्स परिभाषित किए जाते हैं।
इसके लिए एक प्रदर्शन नीचे दिया गया है:
उदाहरण
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, end=" ")
while curr.next != self.head:
curr = curr.next
print(curr.data, end=" ")
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()आउटपुट
Values are being added to the list 21 53 21 76 53 21
व्याख्या
- 'Node' क्लास बनाई गई है।
- आवश्यक एट्रिब्यूट्स के साथ एक और क्लास बनाई गई है।
- 'add_at_beginning' नामक एक और मेथड परिभाषित किया गया है, जिसका उपयोग सर्कुलर लिंक्ड लिस्ट में शुरुआत में डेटा जोड़ने के लिए किया जाता है, यानी 'head' नोड से पहले।
- 'print_it' नामक एक और मेथड परिभाषित किया गया है, जो सर्कुलर लिंक्ड लिस्ट के नोड्स को प्रदर्शित करता है।
- 'list_creation' क्लास का एक ऑब्जेक्ट बनाया जाता है, और डेटा जोड़ने के लिए उस पर मेथड्स कॉल किए जाते हैं।
- एक 'init' मेथड परिभाषित किया गया है, जो सर्कुलर लिंक्ड लिस्ट के पहले और अंतिम नोड्स को None पर इनिशियलाइज़ करता है।
- 'add_at_beginning' मेथड को कॉल किया जाता है।
- यह लिंक्ड लिस्ट के हेड को प्राप्त करता है, उसके पहले एक एलिमेंट जोड़ता है, और इसके एड्रेस को टेल पॉइंटर और नेक्स्ट पॉइंटर पर रेफरेंस करता है।
- यह 'print_it' मेथड का उपयोग करके कंसोल पर प्रदर्शित होता है।