जब सर्कुलर लिंक्ड लिस्ट से अधिकतम और न्यूनतम नोड वैल्यूज़ खोजने की आवश्यकता होती है, तो एक '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_data(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:
self.tail.next = new_node
self.tail = new_node
self.tail.next = self.head
def find_min_node(self):
curr = self.head
min_val = self.head.data
if self.head is None:
print("The list is empty")
else:
while True:
if min_val > curr.data:
min_val = curr.data
curr = curr.next
if curr == self.head:
break
print("Minimum value node in the list: " + str(min_val))
def find_max_node(self):
curr = self.head
max_val = self.head.data
if self.head is None:
print("List is empty")
else:
while True:
if max_val < curr.data:
max_val = curr.data
curr = curr.next
if curr == self.head:
break
print("The maximum value node is: " + str(max_val))
class circular_linked_list:
my_cl = list_creation()
print("Values have been added to the list")
my_cl.add_data(11)
my_cl.add_data(52)
my_cl.add_data(36)
my_cl.add_data(74)
my_cl.find_max_node()
my_cl.find_min_node()आउटपुट
Values have been added to the list The maximum value node is: 74 Minimum value node in the list: 11
व्याख्या
- 'Node' क्लास बनाई गई है।
- आवश्यक एट्रिब्यूट्स के साथ एक और क्लास बनाई गई है।
- 'add_data' नामक एक और मेथड परिभाषित किया गया है, जिसका उपयोग सर्कुलर लिंक्ड लिस्ट में डेटा जोड़ने के लिए किया जाता है।
- 'find_max_node' नामक एक और मेथड परिभाषित किया गया है, जो लिस्ट के माध्यम से इटरेट करता है और नोड में अधिकतम वैल्यू प्राप्त करता है।
- 'find_min_node' नामक एक और मेथड परिभाषित किया गया है, जो लिस्ट के माध्यम से इटरेट करता है और नोड में न्यूनतम वैल्यू प्राप्त करता है।
- 'list_creation' क्लास का एक ऑब्जेक्ट बनाया जाता है, और डेटा जोड़ने के लिए उस पर मेथड्स कॉल किए जाते हैं।
- एक 'init' मेथड परिभाषित किया गया है, जो सर्कुलर लिंक्ड लिस्ट के पहले और अंतिम नोड्स को None पर इनिशियलाइज़ करता है।
- 'find_max_node' मेथड और 'find_min_node' मेथड्स को कॉल किया जाता है।
- यह लिंक्ड लिस्ट में नोड्स के माध्यम से इटरेट करता है, लिस्ट में अधिकतम और न्यूनतम वैल्यू प्राप्त करता है।
- यह कंसोल पर प्रदर्शित होता है।