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

पायथन में दो पेड़ों की संरचना और मूल्यों के आधार पर दो पेड़ों की जांच करने का कार्यक्रम बिल्कुल समान है

मान लीजिए कि हमारे पास दो बाइनरी ट्री हैं, हमें यह जांचना होगा कि क्या वे अपनी संरचनाओं और मूल्यों के संदर्भ में बिल्कुल समान हैं या नहीं। हम उन्हें जुड़वां पेड़ कह सकते हैं।

तो, अगर इनपुट पसंद है

पायथन में दो पेड़ों की संरचना और मूल्यों के आधार पर दो पेड़ों की जांच करने का कार्यक्रम बिल्कुल समान है

तो आउटपुट पहली जोड़ी के लिए सही होगा, दूसरी जोड़ी के लिए गलत और तीसरे जोड़े के लिए दूसरा और तीसरा आइटम अलग-अलग हैं और संरचनाएं क्रमशः अलग हैं।

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

  • हल करने के तरीके को परिभाषित करें (), इसमें दो जड़ें होंगी

  • अगर root0 शून्य है और root1 शून्य है, तो

    • सही लौटें

  • अगर root0 शून्य है या root1 शून्य है, तो

    • झूठी वापसी

  • यदि root0 का मान root1 के मान के समान नहीं है, तो

    • झूठी वापसी

  • हल करने पर सही लौटें (रूट 0 के बाएं, रूट 1 के बाएं) और हल करें (रूट 0 के दाएं, रूट 1 के दाएं) सत्य हैं, अन्यथा गलत हैं।

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

उदाहरण

class TreeNode:
   def __init__(self, val, left=None, right=None):
      self.val = val
      self.left = left
      self.right = right
class Solution:
   def solve(self, root0, root1):
      if not root0 and not root1:
         return True
      if not root0 or not root1:
         return False
      if root0.val != root1.val:
         return False
      return self.solve(root0.left, root1.left) and
self.solve(root0.right, root1.right)
ob = Solution()
root1 = TreeNode(10)
root1.left = TreeNode(5)
root1.right = TreeNode(15)
root1.left.left = TreeNode(3)
root1.left.right = TreeNode(8)
root2 = TreeNode(10)
root2.left = TreeNode(5)
root2.right = TreeNode(15)
root2.left.left = TreeNode(3)
root2.left.right = TreeNode(8)
print(ob.solve(root1, root2))

इनपुट

root1 = TreeNode(10) root1.left = TreeNode(5) root1.right =
TreeNode(15) root1.left.left = TreeNode(3) root1.left.right =
TreeNode(8) root2 = TreeNode(10) root2.left = TreeNode(5)
root2.right = TreeNode(15) root2.left.left = TreeNode(3)
root2.left.right = TreeNode(8)

आउटपुट

True

  1. जांचें कि क्या दो पेड़ों के सभी स्तर विपर्ययण हैं या नहीं, पायथन में

    मान लीजिए, हमें दो बाइनरी ट्री दिए गए हैं। हमें यह जांचना है कि बाइनरी ट्री का प्रत्येक स्तर दूसरे बाइनरी ट्री के समान स्तर का विपर्ययण है या नहीं। यदि यह विपर्यय है तो हम सही लौटते हैं, अन्यथा हम गलत लौटते हैं। तो, अगर इनपुट पसंद है , तो आउटपुट ट्रू होगा। इसे हल करने के लिए, हम इन चरणों का पाल

  1. पायथन में पत्तियों का क्रम दो पत्तियों के समान है या नहीं, यह जांचने के लिए कार्यक्रम

    मान लीजिए हमारे पास दो बाइनरी ट्री हैं; हमें यह जांचना होगा कि दोनों पेड़ों में बाएं से दाएं पत्तों का क्रम समान है या नहीं। तो, अगर इनपुट पसंद है तब आउटपुट सही होगा क्योंकि दोनों पेड़ों के लिए अनुक्रम [2, 6] है। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे: c :=एक नई सूची एक फ़ंक्शन को परिभ

  1. ट्री में सभी मानों की जाँच करने का कार्यक्रम पायथन में समान है या नहीं

    मान लीजिए हमारे पास एक बाइनरी ट्री है, हमें यह जांचना होगा कि ट्री के सभी नोड्स का मान समान है या नहीं। तो, अगर इनपुट पसंद है तो आउटपुट सही होगा इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - फ़ंक्शन को हल करें () परिभाषित करें। यह जड़ लेगा, और वैल अगर रूट शून्य है, तो सही लौटें