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

पायथन में ट्री के गैर-आसन्न नोड्स के अधिकतम योग को खोजने का प्रोग्राम


मान लीजिए हमारे पास एक बाइनरी ट्री है, हमें उन मानों का अधिकतम योग ढूंढना है जो इस शर्त पर प्राप्त किया जा सकता है कि कोई दो मान आसन्न पैरेंट-टू-चाइल्ड न हों।

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

पायथन में ट्री के गैर-आसन्न नोड्स के अधिकतम योग को खोजने का प्रोग्राम

तो आउटपुट 17 होगा क्योंकि 10, 4, 3 एक-दूसरे से आसन्न नहीं हैं।

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

  • एक फ़ंक्शन f() परिभाषित करें। यह node लेगा
  • यदि node null है, तो
    • (0, 0) वापस करें
  • (a, b) := f(node का बायाँ)
  • (c, d) := f(node का दायाँ)
  • एक जोड़ी वापस करें (node के मान + b + d और a + c का अधिकतम, a + c)
  • मुख्य विधि से f(root) कॉल करें और इसका पहला मान वापस करें

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

उदाहरण

class TreeNode: def __init__(self, data, left = None, right = None):    self.val = data    self.left = left    self.right = right def f(node):    if not node:       return 0, 0    a, b = f(node.left)    c, d = f(node.right)    return max(node.val + b + d, a + c), a + c class Solution:    def solve(self, root):       return f(root)[0] ob = Solution() root = TreeNode(1) root.left = TreeNode(2) root.right = TreeNode(10) root.left.left = TreeNode(4) root.left.right = TreeNode(3) print(ob.solve(root))

इनपुट

root = TreeNode(1) root.left = TreeNode(2) root.right = TreeNode(10) root.left.left = TreeNode(4) root.left.right = TreeNode(3)

आउटपुट

17

  1. पायथन में ट्री के बाएं सबसे गहरे नोड को खोजने का प्रोग्राम पायथन में ट्री के बाएं सबसे गहरे नोड को खोजने का प्रोग्राम

    मान लीजिए हमारे पास एक बाइनरी ट्री है; हमें सबसे गहरे नोड का मान ढूंढना है। यदि एक से अधिक सबसे गहरे नोड हैं, तो सबसे बाएं गहरे नोड को लौटाएं। उदाहरण के लिए, यदि इनपुट निम्न ट्री है: तो आउटपुट 4 होगा क्योंकि 4 और 7 सबसे गहरे हैं लेकिन 4 सबसे बाएं है। इसे हल करने के लिए हम निम्न चरणों का पालन करेंगे

  1. पायथन में बाइनरी ट्री के किसी भी पथ का सबसे बड़ा योग खोजने का प्रोग्राम पायथन में बाइनरी ट्री के किसी भी पथ का सबसे बड़ा योग खोजने का प्रोग्राम

    मान लीजिए हमारे पास एक बाइनरी ट्री है, हमें रूट नोड से लीफ नोड तक जाने वाले किसी भी पथ का सबसे बड़ा योग ढूंढना है। उदाहरण के लिए, यदि इनपुट जैसा है: तो आउटपुट 29 होगा क्योंकि रूट से, यदि हम पथ 5-<9-<7-<8 का पालन करते हैं तो जोड़ के बाद यह 29 होगा। इसे हल करने के लिए हम निम्न चरणों का पालन करेंगे:

  1. पायथन में बाइनरी ट्री की अधिकतम चौड़ाई खोजने का प्रोग्राम पायथन में बाइनरी ट्री की अधिकतम चौड़ाई खोजने का प्रोग्राम

    मान लीजिए हमारे पास एक बाइनरी ट्री है, हमें ट्री में किसी भी स्तर की अधिकतम चौड़ाई ढूंढनी है। यहां एक स्तर की चौड़ाई उन नोड्स की संख्या है जो बाएं सबसे नोड और दाएं सबसे नोड के बीच रखे जा सकते हैं। उदाहरण के लिए, यदि इनपुट है: तो आउटपुट होगा 2। हल करने के चरण एक मैप d बनाएं, न्यूनतम और अधिकतम मान