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

पायथन में एक पेड़ दूसरे का उपवृक्ष है या नहीं यह जांचने का कार्यक्रम

मान लीजिए कि हमारे पास दो बाइनरी ट्री हैं। हमें यह जांचना होगा कि दूसरा पेड़ पहले वाले का उप-वृक्ष है या नहीं।

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

पायथन में एक पेड़ दूसरे का उपवृक्ष है या नहीं यह जांचने का कार्यक्रम

तो आउटपुट ट्रू होगा।

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

  • फ़ंक्शन को हल करें () परिभाषित करें। यह जड़ लेगा, लक्ष्य

  • यदि रूट शून्य है और लक्ष्य भी शून्य है, तो

    • सही लौटें

  • यदि रूट शून्य है या लक्ष्य शून्य है, तो

    • झूठी वापसी

  • यदि रूट का मान लक्ष्य के मान के समान है, तो

    • हल करें (रूट के बाएं, लक्ष्य के बाएं) और हल करें (रूट के दाएं, लक्ष्य के दाएं)

  • अन्यथा,

    • हल करें (रूट के बाएं, लक्ष्य) या हल करें (रूट का अधिकार, लक्ष्य)

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

उदाहरण

class TreeNode:
   def __init__(self, data, left = None, right = None):
      self.val = data
      self.left = left
      self.right = right
class Solution:
   def solve(self, root, target):
      if root == None and target == None:
         return True
      if root == None or target == None:
         return False
      if root.val == target.val:
         return self.solve(root.left, target.left) and
self.solve(root.right, target.right)
      else:
         return self.solve(root.left, target) or
self.solve(root.right, target)
ob = Solution()
root1 = TreeNode(6)
root1.left = TreeNode(4)
root1.right = TreeNode(10)
root1.left.left = TreeNode(3)
root1.left.right = TreeNode(5)
root2 = TreeNode(4)
root2.left = TreeNode(3)
root2.right = TreeNode(5)
print(ob.solve(root1, root2))

इनपुट

root1 = TreeNode(6)
root1.left = TreeNode(4)
root1.right = TreeNode(10)
root1.left.left = TreeNode(3)
root1.left.right = TreeNode(5)
root2 = TreeNode(4)
root2.left = TreeNode(3)
root2.right = TreeNode(5)

आउटपुट

True

  1. पायथन में बाइनरी ट्री पूर्ण है या नहीं यह जांचने के लिए प्रोग्राम

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

  1. पायथन में दिया गया ग्राफ द्विदलीय है या नहीं, यह जांचने के लिए कार्यक्रम

    मान लीजिए कि हमारे पास एक अप्रत्यक्ष ग्राफ है, हमें यह जांचना है कि ग्राफ द्विदलीय है या नहीं। जैसा कि हम जानते हैं कि एक ग्राफ द्विदलीय होता है जब हम ग्राफ के नोड्स को दो सेट ए और बी में विभाजित कर सकते हैं जैसे कि ग्राफ के प्रत्येक किनारे {यू, वी} में ए में एक नोड और बी में दूसरा नोड वी होता है।

  1. यह जांचने का कार्यक्रम कि क्या एक मान BST में मौजूद है या नहीं, Python में है

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