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

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

मान लीजिए हमारे पास एक बाइनरी ट्री है; हमें सबसे गहरे नोड का मान ज्ञात करना होगा। यदि एक से अधिक गहरे नोड हैं, तो सबसे बाएं सबसे गहरे नोड को वापस करें।

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

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

तो आउटपुट 4 होगा क्योंकि 4 और 7 सबसे गहरे हैं लेकिन 4 सबसे ज्यादा बचे हैं।

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

  • कतार:=एक नोड रूट के साथ एक कतार।

  • left_max :=रूट का मान

  • जबकि कतार का आकार> 0, करें

    • level_size :=कतार का आकार

    • मैं के लिए 0 से level_size की सीमा में, ऐसा करें

      • अस्थायी:=कतार से पहला तत्व और इसे हटा दें

      • अगर मैं 0 के समान हूं, तो

        • left_max :=अस्थायी का मान

      • यदि तापमान का बायां शून्य शून्य है, तो

        • कतार के अंत में अस्थायी के बाईं ओर डालें

      • अगर टेम्परेचर का राइट अशक्त नहीं है, तो

        • कतार के अंत में अस्थायी के दाईं ओर डालें

    • बाएं_मैक्स पर लौटें

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

उदाहरण

class TreeNode:
   def __init__(self, value):
      self.val = value
      self.left = None
   self.right = None

class Solution:
   def solve(self, root):
      queue = [root]
      left_max = root.val
      while len(queue) > 0:
         level_size = len(queue)
         for i in range(level_size):
            temp = queue.pop(0)
            if i == 0:
               left_max = temp.val
            if temp.left:
               queue.append(temp.left)
            if temp.right:
               queue.append(temp.right)
      return left_max
ob = Solution()
root = TreeNode(13)
root.left = TreeNode(12)
root.right = TreeNode(14)
root.right.left = TreeNode(16)
root.right.right = TreeNode(22)
root.right.left.left = TreeNode(4)
root.right.left.right = TreeNode(7)
print(ob.solve(root))

इनपुट

root = TreeNode(13)
root.left = TreeNode(12)
root.right = TreeNode(14)
root.right.left = TreeNode(16)
root.right.right = TreeNode(22)
root.right.left.left = TreeNode(4)
root.right.left.right = TreeNode(7)

आउटपुट

4

  1. पायथन में बाइनरी ट्री का सबसे लंबा सम मान पथ खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक बाइनरी ट्री है, हमें ट्री में किन्हीं दो नोड्स के बीच सम मानों वाला सबसे लंबा पथ खोजना होगा। तो, अगर इनपुट पसंद है तो आउटपुट 5 होगा क्योंकि सबसे लंबा रास्ता [10, 2, 4, 8, 6] है। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - उत्तर :=0 फ़ंक्शन ढूंढें() को परिभाष

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

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

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

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