जब सर्कुलर लिंक्ड सूची से अधिकतम और न्यूनतम नोड मान खोजने की आवश्यकता होती है, तो एक 'नोड' वर्ग बनाने की आवश्यकता होती है। इस वर्ग में, दो विशेषताएँ हैं, डेटा जो नोड में मौजूद है, और लिंक की गई सूची के अगले नोड तक पहुँच।
एक वृत्ताकार लिंक्ड सूची में, सिर और पिछला एक दूसरे से सटे हुए होते हैं। वे एक मंडली बनाने के लिए जुड़े हुए हैं, और अंतिम नोड में 'NULL' मान नहीं है।
एक और वर्ग बनाने की जरूरत है जिसमें प्रारंभिक कार्य होगा, और नोड के प्रमुख को 'कोई नहीं' में प्रारंभ किया जाएगा।
उपयोगकर्ता द्वारा लिंक की गई सूची में नोड जोड़ने, नोड्स में न्यूनतम और अधिकतम मान खोजने और उन्हें प्रदर्शित करने के लिए कई विधियों को परिभाषित किया गया है।
नीचे उसी के लिए एक प्रदर्शन है -
उदाहरण
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 == 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 == 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 valueed 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 valueed node is : 74 Minimum value node in the list: 11
स्पष्टीकरण
- 'नोड' वर्ग बनाया गया है।
- आवश्यक विशेषताओं वाला एक और वर्ग बनाया गया है।
- 'add_data' नाम की एक अन्य विधि परिभाषित की गई है, जिसका उपयोग सर्कुलर लिंक्ड सूची में डेटा जोड़ने के लिए किया जाता है।
- 'find_max_node' नामक एक अन्य विधि को परिभाषित किया गया है, जो सूची के माध्यम से पुनरावृत्त होती है और नोड में अधिकतम मान प्राप्त करती है।
- 'find_min_node' नामक एक अन्य विधि को परिभाषित किया गया है, जो सूची के माध्यम से पुनरावृत्त होती है और नोड में न्यूनतम मान प्राप्त करती है।
- 'list_creation' वर्ग का एक ऑब्जेक्ट बनाया जाता है, और उस पर डेटा जोड़ने के तरीकों को बुलाया जाता है।
- एक 'init' विधि परिभाषित की गई है, कि सर्कुलर लिंक्ड सूची के पहले और अंतिम नोड्स किसी से नहीं।
- 'find_max_node' विधि और 'find_min_node' विधियाँ कहलाती हैं।
- यह लिंक की गई सूची में नोड्स के माध्यम से पुनरावृति करता है, सूची में अधिकतम और न्यूनतम मान प्राप्त करता है।
- यह कंसोल पर प्रदर्शित होता है।