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

Python में एक ट्री दूसरे का सबट्री है या नहीं, इसकी जांच करने का प्रोग्राम


मान लीजिए हमारे पास दो बाइनरी ट्री हैं। हमें यह जांचना है कि दूसरा ट्री पहले का सबट्री है या नहीं।

तो, यदि इनपुट इस तरह है

Python में एक ट्री दूसरे का सबट्री है या नहीं, इसकी जांच करने का प्रोग्राम

तो आउटपुट True होगा।

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

  • solve() फ़ंक्शन परिभाषित करें। यह root, target लेगा
  • यदि root null है और target भी null है, तो True लौटाएं
  • यदि root null है या target null है, तो False लौटाएं
  • यदि root का मान target के मान के समान है, तो solve(root के बाएं, target के बाएं) और solve(root के दाएं, target के दाएं) लौटाएं
  • अन्यथा, solve(root के बाएं, target) या solve(root के दाएं, target) लौटाएं

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

उदाहरण


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. पायथन में जांचें कि दिया गया ग्राफ द्विभाजित है या नहीं पायथन में जांचें कि दिया गया ग्राफ द्विभाजित है या नहीं

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

  1. पायथन में जांचें कि क्या कोई मान BST में मौजूद है या नहीं पायथन में जांचें कि क्या कोई मान BST में मौजूद है या नहीं

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