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

पायथन में बाइनरी ट्री के प्रत्येक विकर्ण पथ के तत्वों का योग खोजने का प्रोग्राम


मान लीजिए हमारे पास एक बाइनरी ट्री है, हमें ट्री में प्रत्येक विकर्ण का योग ढूंढना है जो ऊपर से नीचे-दाएं तक जाता है।

उदाहरण के लिए, यदि इनपुट जैसा है: पायथन में बाइनरी ट्री के प्रत्येक विकर्ण पथ के तत्वों का योग खोजने का प्रोग्राम तो आउटपुट [27, 18, 3] होगा क्योंकि विकर्ण [12,15], [8,10], [3] हैं। इसलिए योग मान [27, 18, 3] हैं।

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

एक फंक्शन traverse() परिभाषित करें जो node, numLeft, output लेता है:

  • यदि node null है, तो वापस करें
  • यदि numLeft >= output का आकार, तो output के अंत में node का डेटा डालें
  • अन्यथा, output[numLeft] := output[numLeft] + node का डेटा
  • यदि node का बायां null नहीं है, तो traverse(node का बायां, numLeft+1, output)
  • यदि node का दायां null नहीं है, तो traverse(node का दायां, numLeft, output)
  • मुख्य विधि से:
    • output := एक नई सूची
    • traverse(root, 0, output)
    • output वापस करें

उदाहरण

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):
        output = []
        def traverse(node, numLeft, output):
            if not node:
                return
            if numLeft >= len(output):
                output.append(node.data)
            else:
                output[numLeft] += node.data
            if node.left:
                traverse(node.left, numLeft+1, output)
            if node.right:
                traverse(node.right, numLeft, output)
        traverse(root, 0, output)
        return output

ob = Solution()
root = TreeNode(12)
root.left = TreeNode(8)
root.right = TreeNode(15)
root.left.left = TreeNode(3)
root.left.right = TreeNode(10)
print(ob.solve(root))

इनपुट

root = TreeNode(12) root.left = TreeNode(8) root.right = TreeNode(15) root.left.left = TreeNode(3) root.left.right = TreeNode(10)

आउटपुट

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

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

  1. Python प्रोग्राम में ऐरे का योग खोजना Python प्रोग्राम में ऐरे का योग खोजना

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक ऐरे दिया गया है, हमें ऐरे का योग निकालने की आवश्यकता है। पूरे ऐरे को पार करने और प्रत्येक इंडेक्स पर तत्व को जोड़कर योग प्राप्त करने का ब्रूट-फोर्स दृष्टिकोण नीचे चर्चा किया गया है। उदाहरण # sum फ़ंक्शन def

  1. पायथन प्रोग्राम: ऐरे का योग ढूंढें पायथन प्रोग्राम: ऐरे का योग ढूंढें

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