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

पायथन में बाइनरी ट्री के BST होने की जांच करने का प्रोग्राम


मान लीजिए हमारे पास एक बाइनरी ट्री है; हमें जांचना है कि क्या यह एक बाइनरी सर्च ट्री है या नहीं। जैसा कि हम जानते हैं एक BST के निम्न गुण होते हैं:

  • इसके बाएं सबट्री के सभी नोड्स वर्तमान नोड के मान से छोटे होते हैं
  • इसके दाएं सबट्री के सभी नोड्स वर्तमान नोड के मान से बड़े होते हैं
  • ये गुण सभी नोड्स के लिए पुनरावर्ती रूप से लागू होते हैं

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

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

  • x := ट्री तत्वों के इनऑर्डर ट्रैवर्सल क्रम की सूची
  • यदि x क्रमबद्ध है, तो सत्य वापस करें
  • असत्य वापस करें

उदाहरण

class TreeNode:
    def __init__(self, data, left=None, right=None):
        self.data = data
        self.left = left
        self.right = right

class Solution:
    def solve(self, root):
        def inorder(root, l):
            if root is None:
                return
            inorder(root.left, l)
            l.append(root.data)
            inorder(root.right, l)
        l = []
        inorder(root, l)
        return l == sorted(l)

ob = Solution()
root = TreeNode(5)
root.left = TreeNode(1)
root.right = TreeNode(9)
root.right.left = TreeNode(7)
root.right.right = TreeNode(10)
root.right.left.left = TreeNode(6)
root.right.left.right = TreeNode(8)
print(ob.solve(root))

इनपुट

root = TreeNode(5) root.left = TreeNode(1) root.right = TreeNode(9) root.right.left = TreeNode(7) root.right.right = TreeNode(10) root.right.left.left = TreeNode(6) root.right.left.right = TreeNode(8)

आउटपुट

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

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

  1. पायथन में बाइनरी ट्री के हीप होने की जांच पायथन में बाइनरी ट्री के हीप होने की जांच

    समस्या विवरण एक बाइनरी ट्री दिया गया है, जांचें कि क्या यह हीप है। हीप की शर्तें: कंप्लीट बाइनरी ट्री (अंतिम लेवल को छोड़कर सभी भरे हों) मैक्स-हीप प्रॉपर्टी: प्रत्येक नोड का मान अपने बच्चों से ≥ हो उदाहरण ट्री (रूट=99, बच्चे 46,39, आदि) — आउटपुट: True एल्गोरिदम number_of_nodes(root): कुल नोड्स

  1. पायथन में बाइनरी ट्री उल्टा करें पायथन में बाइनरी ट्री उल्टा करें

    मान लीजिए हमारे पास एक बाइनरी ट्री है। हमारा कार्य एक उल्टा बाइनरी ट्री बनाना है। यदि ट्री नीचे जैसा है: उल्टा ट्री इस तरह होगा: इसे हल करने के लिए हम एक पुनरावर्ती दृष्टिकोण का उपयोग करेंगे: यदि रूट null है, तो वापस करें बाएं और दाएं पॉइंटर्स को स्वैप करें बाएं सबट्री और दाएं सबट्री के लिए पुनर