मान लीजिए, हमारे पास एक एकल लिंक की गई सूची है जहां प्रत्येक नोड में एक पूर्णांक मान होता है। हमें यह पता लगाना है कि क्या दो क्रमिक नोड्स के बीच पूर्ण अंतर 1 है।
इसलिए, अगर इनपुट start_node->5->6->7->8->7->6->5->4 जैसा है, तो आउटपुट ट्रू होगा।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- अस्थायी:=start_node
- जबकि अस्थायी शून्य नहीं है, करें
- यदि अस्थायी लिंक शून्य के समान है, तो
- लूप से बाहर आएं
- अगर | (अस्थायी) का मान - (temp.link) का मान| 1 के समान नहीं है, तो
- झूठी वापसी
- अस्थायी:=अस्थायी लिंक
- यदि अस्थायी लिंक शून्य के समान है, तो
- सही लौटें
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
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