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

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


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

इसलिए, यदि इनपुट इस तरह है

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

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

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

  • एक फ़ंक्शन util() परिभाषित करें। यह root, k, ans लेगा

  • यदि root का बायाँ और दायाँ दोनों नल नहीं हैं, तो

    • वापस लौटें

  • यदि k > root का मान है, तो

    • यदि root के दाएँ का मान k के समान है, तो

      • root के बाएँ के मान को ans के अंत में जोड़ें

      • वापस लौटें

    • अन्यथा,

      • util(root का दायाँ, k, ans)

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

    • यदि root के बाएँ का मान k के समान है, तो

      • root के दाएँ के मान को ans के अंत में जोड़ें

      • वापस लौटें

    • अन्यथा,

      • util(root का बायाँ, k, ans)

  • मुख्य विधि से, निम्नलिखित करें −

  • ans := एक नई सूची

  • util(root, k, ans)

  • 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. पायथन में बाइनरी सर्च ट्री में Kवां सबसे छोटा तत्व खोजने का प्रोग्राम पायथन में बाइनरी सर्च ट्री में Kवां सबसे छोटा तत्व खोजने का प्रोग्राम

    मान लीजिए हमारे पास एक बाइनरी सर्च ट्री और एक पूर्णांक k है, हमें ट्री में kवां सबसे छोटा मान ढूंढना है। उदाहरण के लिए, यदि इनपुट निम्न ट्री है: k = 3, तो आउटपुट 7 होगा। इसे हल करने के लिए हम निम्न चरणों का पालन करेंगे (इटरेटिव इनऑर्डर ट्रैवर्सल): stack := [], i := 0, ans := -1। जब तक stack खाली

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

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

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

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