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

पायथन में लिंक्ड लिस्ट में लगातार नोड्स का निरपेक्ष अंतर 1 है या नहीं जांचें

मान लीजिए, हमारे पास एक सिंगली लिंक्ड लिस्ट है जहां प्रत्येक नोड में एक पूर्णांक मान होता है। हमें यह पता लगाना है कि दो क्रमिक नोड्स के बीच का निरपेक्ष अंतर 1 है या नहीं।

इसलिए, यदि इनपुट इस तरह है: start_node->5->6->7->8->7->6->5->4, तो आउटपुट True होगा।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:

  • temp := start_node
  • जब तक temp null नहीं है, करें:
    • यदि temp.link null के समान है, तो:
      • लूप से बाहर आएं
    • यदि |temp का मान - temp.link का मान| 1 के समान नहीं है, तो:
      • False वापस करें
    • temp := temp.link
  • True वापस करें

उदाहरण

बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:

import math

class link_node:
    def __init__(self, value):
        self.value = value
        self.link = None

def create_node(value):
    temp = link_node(value)
    temp.value = value
    temp.link = None
    return temp

def make_list(elements):
    head = link_node(elements[0])
    for element in elements[1:]:
        ptr = head
        while ptr.link:
            ptr = ptr.link
        ptr.next = link_node(element)
    return head

def solve(start_node):
    temp = start_node
    while (temp):
        if (temp.link == None):
            break
        if (abs((temp.value) - (temp.link.value)) != 1):
            return False
        temp = temp.link
    return True

start_node = make_list([5, 6, 7, 8, 7, 6, 5, 4])
print(solve(start_node))

इनपुट

[5, 6, 7, 8, 7, 6, 5, 4]

आउटपुट

True
  1. - पायथन प्रोग्राम उनके निरपेक्ष अंतर की फ्रीक्वेंसी के आधार पर टपल्स को सॉर्ट करने के लिए

    जब उनके निरपेक्ष अंतर की फ्रीक्वेंसी के आधार पर टपल्स को सॉर्ट करना आवश्यक होता है, तो लैम्ब्डा फंक्शन, abs मेथड और sorted मेथड का उपयोग किया जाता है। उदाहरण नीचे इसका प्रदर्शन है: my_list = [(11, 26), (21, 33), (90, 11), (26, 21), (32, 18), (25, 37)] print(The list is:) print(my_list) my_diff_l

  1. - पायथन – लिस्ट में लगातार विभाजन

    जब लिस्ट में लगातार विभाजन निकालना हो, तो एक मेथड परिभाषित की जाती है जो लिस्ट के एलिमेंट्स पर पुनरावृति करती है और परिणाम निर्धारित करने के लिए / ऑपरेटर का उपयोग करती है।उदाहरणdef consec_division(my_list): my_result = my_list[0] for idx in range(1, len(my_list)): my_result /= my_list[i

  1. पायथन में लिंक्ड लिस्ट से m नोड्स के बाद n नोड्स डिलीट करने का प्रोग्राम पायथन में लिंक्ड लिस्ट से m नोड्स के बाद n नोड्स डिलीट करने का प्रोग्राम

    मान लीजिए हमें एक लिंक्ड लिस्ट दी गई है जिसका स्टार्ट नोड head है, और दो पूर्णांक m और n हैं। हमें लिस्ट को ट्रैवर्स करना है और कुछ नोड्स डिलीट करने हैं जैसे कि पहले m नोड्स लिस्ट में रखे जाएं और पहले m नोड्स के बाद अगले n नोड्स डिलीट कर दिए जाएं। हम इसे तब तक करते हैं जब तक लिंक्ड लिस्ट का अंत न आ