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

पायथन में जांचें कि BST के प्रत्येक आंतरिक नोड का ठीक एक बच्चा है या नहीं


मान लीजिए हमारे पास एक बाइनरी सर्च ट्री (BST) का प्रीऑर्डर ट्रैवर्सल है। हमें जांचना है कि क्या प्रत्येक आंतरिक नोड का केवल एक बच्चा है या नहीं।

उदाहरण के लिए, यदि preorder = [22, 12, 13, 15, 14] है, तो आउटपुट True होगा।

पायथन में जांचें कि BST के प्रत्येक आंतरिक नोड का ठीक एक बच्चा है या नहीं

हल करने का तरीका

एक कुशल दृष्टिकोण: चूंकि एक नोड के सभी वंशज या तो छोटे होते हैं या बड़े, हम निम्न चरणों का पालन कर सकते हैं:

  1. नोड का अगला प्रीऑर्डर उत्तराधिकारी प्राप्त करें
  2. नोड का अंतिम प्रीऑर्डर उत्तराधिकारी प्राप्त करें
  3. अब जब दोनों उत्तराधिकारी वर्तमान नोड से कम या अधिक हों तो जांच जारी रखें अन्यथा False लौटाएं

एल्गोरिदम:

  1. next := 0, last := 0
  2. प्रीऑर्डर के प्रत्येक तत्व के लिए:
    • next := preorder[i] - preorder[i+1]
    • last := preorder[i] - preorder का अंतिम मान
    • यदि next × last < 0, तो False लौटाएं
  3. True लौटाएं

उदाहरण

def solve(preorder):
    next_val = 0
    last = 0
    for i in range(len(preorder) - 1):
        next_val = preorder[i] - preorder[i + 1]
        last = preorder[i] - preorder[-1]
        if next_val * last < 0:
            return False
    return True

preorder = [22, 12, 13, 15, 14]
print(solve(preorder))

इनपुट

[22, 12, 13, 15, 14]

आउटपुट

True
  1. Python में प्रत्येक नोड मान (पत्तियों को छोड़कर) उसके बच्चों के योग के बराबर है या नहीं, इसकी जांच करने का प्रोग्राम Python में प्रत्येक नोड मान (पत्तियों को छोड़कर) उसके बच्चों के योग के बराबर है या नहीं, इसकी जांच करने का प्रोग्राम

    मान लीजिए हमारे पास एक बाइनरी ट्री है, हमें यह जांचना है कि ट्री में पत्तियों को छोड़कर हर नोड के लिए, उसका मान उसके बाएं बच्चे के मान और उसके दाएं बच्चे के मान के योग के समान है या नहीं। तो, यदि इनपुट इस तरह है तो आउटपुट True होगा। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे: dfs() फ़ंक्शन

  1. पायथन में जांचें कि क्या कोई मान BST में मौजूद है या नहीं पायथन में जांचें कि क्या कोई मान BST में मौजूद है या नहीं

    मान लीजिए हमारे पास एक बाइनरी सर्च ट्री और एक अन्य इनपुट val है, हमें जांचना है कि क्या val ट्री में मौजूद है या नहीं। उदाहरण के लिए, यदि इनपुट है: val = 7, तो आउटपुट होगा True, क्योंकि 7 ट्री में मौजूद है। हल करने के चरण एक फ़ंक्शन solve() परिभाषित करें। यह root, val लेगा। यदि root नल है, तो Fal

  1. - पायथन में कैसे जांचें कि स्ट्रिंग में अल्फाबेट्स या नंबर्स हैं?

    पायथन स्ट्रिंग क्लास में isalnum() नामक एक मेथड होता है जिसे स्ट्रिंग पर कॉल किया जा सकता है और यह हमें बताता है कि स्ट्रिंग में केवल अल्फान्यूमेरिक्स हैं या नहीं। आप इसे निम्न प्रकार से कॉल कर सकते हैं: print(123abc.isalnum()) आउटपुट: True print(123#$%abc.isalnum()) आउटपुट: False आप उसी परिणाम के ल