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

पायथन में बाइनरी ट्री नोड के सहोदर मूल्य को खोजने का कार्यक्रम

मान लीजिए कि हमारे पास एक मान k और एक बाइनरी सर्च ट्री है, यहाँ प्रत्येक नोड या तो एक पत्ता है या इसमें 2 बच्चे हैं। हमें k मान वाले नोड को खोजना होगा, और उसके भाई-बहन का मान लौटाना होगा।

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

पायथन में बाइनरी ट्री नोड के सहोदर मूल्य को खोजने का कार्यक्रम

k =4, तो आउटपुट 10 होगा।

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

  • उपयोग() फ़ंक्शन को परिभाषित करें। यह जड़ लेगा, k, ans

  • यदि मूल का बायां भाग शून्य नहीं है और जड़ का दायां भाग शून्य नहीं है, तो

    • वापसी

  • अगर k> रूट का मान, तो

    • यदि मूल के दायीं ओर का मान k के समान है, तो

      • उत्तर के अंत में रूट के बाईं ओर का मान डालें

      • वापसी

    • अन्यथा,

      • उपयोग (रूट का अधिकार, k, ans)

  • यदि k <मूल का मान है, तो

    • यदि मूल के दायीं ओर का मान k के समान है, तो

      • उत्तर के अंत में रूट के अधिकार का मान डालें

      • वापसी

    • अन्यथा,

      • उपयोग (रूट के बाएँ, k, ans)

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

  • उत्तर :=एक नई सूची

  • उपयोग (रूट, के, उत्तर)

  • वापसी उत्तर[0]

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

उदाहरण

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

def util(root, k, ans):
   if root.left is None and root.right is None:
      return
   if k > root.val:
      if root.right.val == k:
         ans.append(root.left.val)
         return
      else:
         util(root.right, k, ans)
   if k < root.val:
      if root.left.val == k:
         ans.append(root.right.val)
         return
      else:
         util(root.left, k, ans)

class Solution:
   def solve(self, root, k):
      ans = []
      util(root, k, ans)
      return ans[0]

root = TreeNode(6)
root.left = TreeNode(4)
root.right = TreeNode(10)
root.left.left = TreeNode(3)
root.left.right = TreeNode(5)
ob1 = Solution()
print(ob1.solve(root, 4))

इनपुट

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

आउटपुट

10

  1. पायथन में बाइनरी सर्च ट्री में kth सबसे छोटा तत्व खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक बाइनरी सर्च ट्री है, और एक और पूर्णांक k है, तो हमें ट्री में kth सबसे छोटा मान खोजना होगा। तो, अगर इनपुट पसंद है k =3, तो आउटपुट 7 होगा इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - स्टैक :=एक खाली स्टैक मैं :=0 उत्तर :=-1 जबकि स्टैक खाली नहीं है या रूट

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

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

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

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