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

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

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

इसलिए, यदि इनपुट प्रीऑर्डर =[22, 12, 13, 15, 14] जैसा है, तो आउटपुट सही होगा क्योंकि बीएसटी जैसा है -

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

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

  • नोड का अगला अग्रिम-आदेश उत्तराधिकारी प्राप्त करें

  • नोड का अंतिम अग्रिम-आदेश उत्तराधिकारी प्राप्त करें

  • अब जब दोनों उत्तराधिकारी वर्तमान नोड से कम या अधिक हों तो दोबारा जांचें अन्यथा झूठी वापसी करें।

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

  • अगला:=0, अंतिम:=0
  • i के लिए 0 से प्रीऑर्डर के आकार के लिए - 1, do
    • अगला:=अग्रिम आदेश[i] - अग्रिम आदेश[i+1]
    • अंतिम:=अग्रिम आदेश[i] - अग्रिम आदेश का अंतिम मान
    • यदि अगला * अंतिम <0, तो
      • झूठी वापसी
  • सही लौटें

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

उदाहरण

def solve(preorder):
next = 0
last = 0
for i in range(len(preorder)-1):
next = preorder[i] - preorder[i+1]
last = preorder[i] - preorder[-1]
if next * last < 0:
return False
return True
preorder = [22, 12, 13, 15, 14] print(solve(preorder))

इनपुट

[22, 12, 13, 15, 14]

आउटपुट

True

  1. यह जांचने के लिए कार्यक्रम कि क्या पत्तियों को छोड़कर प्रत्येक नोड मान उसके बच्चों के मूल्य का योग है या नहीं, पायथन में

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

  1. यह जांचने का कार्यक्रम कि क्या एक मान BST में मौजूद है या नहीं, Python में है

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

  1. मैं कैसे जांचूं कि एक स्ट्रिंग में पाइथन में अक्षर या संख्याएं हैं या नहीं?

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