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

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

मान लीजिए कि हमारे पास एक बाइनरी ट्री है, हमें ऊपर से नीचे दाईं ओर से शुरू होने वाले पेड़ के प्रत्येक विकर्ण का योग ज्ञात करना है।

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

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

तब आउटपुट [27, 18, 3] होगा क्योंकि विकर्ण [12,15], [8,10], [3] हैं। तो योग मान हैं [27, 18, 3]

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

फ़ंक्शन ट्रैवर्स () को परिभाषित करें। यह नोड, numLeft, आउटपुट लेगा

  • यदि नोड शून्य है, तो

    • वापसी

  • यदि numLeft>=आउटपुट का आकार , तो

    • आउटपुट के अंत में नोड का डेटा डालें

  • अन्यथा,

    • आउटपुट [numLeft]:=आउटपुट [numLeft] + नोड का डेटा

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

    • ट्रैवर्स (नोड के बाएं, numLeft+1, आउटपुट)

  • यदि नोड का दायां शून्य नहीं है, तो

    • ट्रैवर्स (नोड का दायां, numLeft, आउटपुट)

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

  • आउटपुट :=एक नई सूची

  • ट्रैवर्स (रूट, 0, आउटपुट)

  • वापसी आउटपुट

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

उदाहरण

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 . होगा इसे हल करने के लिए, हम इन चरणों का पालन करेंगे- न्य

  1. पायथन प्रोग्राम में सरणी का योग ज्ञात करें

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

  1. सरणी का योग खोजने के लिए पायथन कार्यक्रम

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