Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

सर्कुलर लिंक्ड लिस्ट से अधिकतम और न्यूनतम वैल्यू नोड खोजने के लिए Python प्रोग्राम


जब सर्कुलर लिंक्ड लिस्ट से अधिकतम और न्यूनतम नोड वैल्यूज़ खोजने की आवश्यकता होती है, तो एक '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' मेथड्स को कॉल किया जाता है।
  • यह लिंक्ड लिस्ट में नोड्स के माध्यम से इटरेट करता है, लिस्ट में अधिकतम और न्यूनतम वैल्यू प्राप्त करता है।
  • यह कंसोल पर प्रदर्शित होता है।
  1. पायथन में सब-ट्री के नोड मानों के योग से न्यूनतम मान खोजने का प्रोग्राम पायथन में सब-ट्री के नोड मानों के योग से न्यूनतम मान खोजने का प्रोग्राम

    मान लीजिए, हमारे पास एक ट्री है जिसके सभी नोड्स 1 से n तक संख्याबद्ध हैं। प्रत्येक नोड में एक पूर्णांक मान होता है। अब यदि हम ट्री से एक किनारा हटाते हैं, तो दोनों सब-ट्री के नोड मानों के योग में अंतर न्यूनतम होना चाहिए। हमें ऐसे सब-ट्री के बीच न्यूनतम अंतर पता लगाना और लौटाना है। ट्री को हमें किनार

  1. - पायथन में सिंगली लिंक्ड लिस्ट के मध्य नोड को खोजने का प्रोग्राम

    मान लीजिए हमारे पास एक सिंगली लिंक्ड लिस्ट नोड है, हमें मध्य नोड का मान ढूंढना है। और जब दो मध्य नोड होते हैं, तो हम दूसरा वाला वापस करेंगे। हमें इसे सिंगल पास में हल करने का प्रयास करना है। उदाहरण के लिए, यदि इनपुट [5,9,6,4,8,2,1,4,5,2] है, तो आउटपुट 2 होगा। इसे हल करने के लिए हम निम्न चरणों का पा

  1. - सूची में अधिकतम और न्यूनतम तत्व की स्थिति खोजने का पायथन प्रोग्राम

    समस्या विवरण पायथन में अधिकतम, न्यूनतम तत्व और उनकी स्थिति खोजना बहुत आसान है। पायथन विभिन्न इनबिल्ट फंक्शन प्रदान करता है। min() सरणी में न्यूनतम मान खोजने के लिए उपयोग किया जाता है, max() अधिकतम मान खोजने के लिए उपयोग किया जाता है। index() तत्व के इंडेक्स खोजने के लिए उपयोग किया जाता है। एल्गोरिद