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

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

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

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

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

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

तो आउटपुट सही होगा

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

  • 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 में मौजूद है या नहीं, Python में है

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

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

    मान लीजिए हमारे पास एक बाइनरी ट्री है; हमें जांचना है कि यह ढेर है या नहीं। ढेर में निम्नलिखित गुण हैं:ढेर एक द्विआधारी वृक्ष होगा वह वृक्ष एक पूर्ण वृक्ष होना चाहिए (इसलिए अंतिम को छोड़कर सभी स्तर पूर्ण होना चाहिए)। उस पेड़ का प्रत्येक नोड मान उसके चाइल्ड नोड (अधिकतम-ढेर) से अधिक या उसके बराबर होना

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

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