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

पायथन में एक बाइनरी ट्री के पथ द्वारा गठित सभी संख्याओं का योग खोजने का कार्यक्रम

मान लीजिए कि हमारे पास एक बाइनरी ट्री है जहां प्रत्येक नोड में 0 से 9 तक एक अंक होता है। अब रूट से लीफ तक का प्रत्येक पथ अपने अंकों के क्रम में एक संख्या का प्रतिनिधित्व करता है। हमें पेड़ में सभी पथों द्वारा दर्शाई गई संख्याओं का योग ज्ञात करना है।

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

पायथन में एक बाइनरी ट्री के पथ द्वारा गठित सभी संख्याओं का योग खोजने का कार्यक्रम

तो आउटपुट 680 के रूप में 46 (4 → 6), 432 (4 → 3 → 2), 435 (4 → 3 → 5) होगा, और उनका योग 913 होगा।

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

  • फ़ंक्शन को हल करें() परिभाषित करें। यह रूट लेगा, स्ट्रिंग:=ब्लैंक स्ट्रिंग
  • यदि रूट और रूट नहीं। लेफ्ट और रूट नहीं। राइट नॉन-जीरो है, तो
    • रिटर्न इंट (स्ट्रिंग + स्ट्र (रूट का मान))
  • कुल :=0
  • यदि रूट का बायां भाग रिक्त नहीं है, तो
    • कुल:=कुल + हल का संख्यात्मक मान (रूट के बाईं ओर, रूट का स्ट्रिंग समवर्ती मान)
  • यदि मूल का दायां अशक्त नहीं है, तो
    • कुल :=कुल + हल का संख्यात्मक मान (रूट का दायां, रूट का स्ट्रिंग समवर्ती मान)
  • कुल वापसी

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

उदाहरण

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, string=""):
      if root and not root.left and not root.right:
         return int(string + str(root.val))

      total = 0
      if root.left:
         total += int(self.solve(root.left, string + str(root.val)))

      if root.right:
         total += int(self.solve(root.right, string + str(root.val)))

      return total

ob = Solution()
root = TreeNode(4)
root.left = TreeNode(6)
root.right = TreeNode(3)
root.right.left = TreeNode(2)
root.right.right = TreeNode(5)
print(ob.solve(root))

इनपुट

root = TreeNode(4)
root.left = TreeNode(6)
root.right = TreeNode(3)
root.right.left = TreeNode(2)
root.right.right = TreeNode(5)

आउटपुट

913

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

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

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

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

  1. पायथन में बाइनरी ट्री अधिकतम पथ योग

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