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

यह जांचने के लिए कार्यक्रम कि क्या पत्तियों को छोड़कर प्रत्येक नोड मान उसके बच्चों के मूल्य का योग है या नहीं, पायथन में

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

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

यह जांचने के लिए कार्यक्रम कि क्या पत्तियों को छोड़कर प्रत्येक नोड मान उसके बच्चों के मूल्य का योग है या नहीं, पायथन में

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

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

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

  • अगर रूट शून्य है, तो

    • सही लौटें

  • यदि मूल का बायां भाग शून्य है और जड़ का दायां भाग शून्य है, तो

    • सही लौटें

  • बायां :=0

  • यदि रूट का बायां भाग रिक्त नहीं है, तो

    • बायां :=रूट के बाईं ओर का मान

  • दाएं:=0

  • यदि मूल का दायाँ अशक्त नहीं है, तो

    • दाएँ:=मूल के अधिकार का मान

  • सही लौटें जब (बाएं + दायां रूट के मान के समान हो) और dfs (रूट का बायां) सत्य हो और dfs (रूट का दायां) सत्य हो

  • मुख्य विधि से निम्न कार्य करें -

  • वापसी dfs(रूट)

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

उदाहरण

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):
      def dfs(root):
         if root == None:
            return True
         if root.left == None and root.right == None:
            return True
         left = 0
         if root.left:
            left = root.left.val
         right = 0
         if root.right:
            right = root.right.val
         return (left + right == root.val) and dfs(root.left) and
      dfs(root.right)
return dfs(root)
ob = Solution()
root = TreeNode(18)
root.left = TreeNode(8)
root.right = TreeNode(10)
root.left.left = TreeNode(3)
root.left.right = TreeNode(5)
print(ob.solve(root))

इनपुट

root = TreeNode(18) root.left = TreeNode(8) root.right = TreeNode(10)
root.left.left = TreeNode(3) root.left.right = TreeNode(5)

आउटपुट

True

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

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

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

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

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

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