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

पायथन में जांचें कि कोई ऐरे बाइनरी सर्च ट्री का इनऑर्डर ट्रैवर्सल है या नहीं

मान लीजिए हमारे पास संख्याओं का एक ऐरे nums है। हमें यह जांचना है कि क्या ऐरे बाइनरी सर्च ट्री के तत्वों को इसके इनऑर्डर ट्रैवर्सल के क्रम में रखता है या नहीं।

उदाहरण के लिए, यदि इनपुट nums = [5, 8, 15, 18, 20, 26, 39] है, तो आउटपुट True होगा क्योंकि यह निम्न BST का इनऑर्डर ट्रैवर्सल है:

पायथन में जांचें कि कोई ऐरे बाइनरी सर्च ट्री का इनऑर्डर ट्रैवर्सल है या नहीं

समाधान दृष्टिकोण

बाइनरी सर्च ट्री का इनऑर्डर ट्रैवर्सल हमेशा सॉर्टेड क्रम में होता है। इसलिए हमें केवल यह जांचना है कि ऐरे सॉर्टेड (गैर-घटते क्रम में) है या नहीं।

एल्गोरिदम चरण:

  1. size = len(nums)
  2. यदि आकार 0 या 1 है, तो True लौटाएं
  3. इंडेक्स 1 से size-1 तक प्रत्येक तत्व के लिए:
    • यदि nums[i-1] > nums[i], तो False लौटाएं
  4. True लौटाएं

पायथन कार्यान्वयन

def solve(nums):
    size = len(nums)
    if size == 0 or size == 1:
        return True
    for i in range(1, size):
        if nums[i-1] > nums[i]:
            return False
    return True

nums = [5, 8, 15, 18, 20, 26, 39]
print(solve(nums))  # True

इनपुट

[5, 8, 15, 18, 20, 26, 39]

आउटपुट

True

व्याख्या:

दिया गया ऐरे [5, 8, 15, 18, 20, 26, 39] सख्ती से बढ़ते क्रम में है, जो किसी BST के इनऑर्डर ट्रैवर्सल की विशेषता है।

  1. पायथन में बाइनरी ट्री इनऑर्डर ट्रैवर्सल पायथन में बाइनरी ट्री इनऑर्डर ट्रैवर्सल

    मान लीजिए हमारे पास एक बाइनरी ट्री है। हमें रिकर्सन का उपयोग किए बिना इनऑर्डर ट्रैवर्सल योजना का उपयोग करके इस ट्री को पार करना है। इसलिए यदि ट्री इस तरह हैतो ट्रैवर्सल [2,5,7,10,15,20] होगाइसे हल करने के लिए, हम इन चरणों का पालन करेंगे -दो सरणी res और stack बनाएं, curr := root सेट करेंएक अनंत लूप च

  1. पायथन में बाइनरी सर्च ट्री का निम्नतम सामान्य पूर्वज पायथन में बाइनरी सर्च ट्री का निम्नतम सामान्य पूर्वज

    मान लीजिए हमारे पास एक बाइनरी सर्च ट्री है। हमें दो दिए गए नोड्स का निम्नतम सामान्य पूर्वज नोड ढूंढना है। दो नोड्स p और q का LCA वास्तव में ट्री में सबसे निचला नोड है जिसमें p और q दोनों वंशज के रूप में हों। यदि बाइनरी ट्री [6, 2, 8, 0, 4, 7, 9, null, null, 3, 5] जैसा है। ट्री इस तरह होगा: यहां 2

  1. पायथन में क्रमबद्ध सरणी को बाइनरी सर्च ट्री में बदलें पायथन में क्रमबद्ध सरणी को बाइनरी सर्च ट्री में बदलें

    मान लीजिए हमारे पास एक क्रमबद्ध सरणी A है। हमें एक ऊंचाई-संतुलित बाइनरी सर्च ट्री उत्पन्न करना है। इस समस्या में, एक ऊंचाई-संतुलित बाइनरी ट्री वास्तव में एक बाइनरी ट्री है जिसमें हर नोड के दो सबट्री की गहराई 1 से अधिक नहीं होती। मान लीजिए सरणी [-10, -3, 0, 5, 9] जैसी है। तो एक संभावित आउटपुट होगा: