मान लीजिए कि हमारे पास ढेर के पेड़ का प्रतिनिधित्व करने वाली एक सूची है। जैसा कि हम जानते हैं कि हीप एक पूर्ण बाइनरी ट्री है। हमें यह जांचना है कि तत्व अधिकतम ढेर बना रहे हैं या नहीं। जैसा कि हम जानते हैं कि अधिकतम ढेर के लिए प्रत्येक तत्व अपने दोनों बच्चों से बड़ा होता है।
इसलिए, यदि इनपुट nums =[8, 6, 4, 2, 0, 3] जैसा है, तो आउटपुट सही होगा क्योंकि, सभी तत्व अपने बच्चों से बड़े होते हैं।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- n :=अंकों का आकार
- मैं के लिए 0 से n -1 की सीमा में, करो
- एम:=मैं * 2
- संख्या:=अंक[i]
- यदि एम + 1 <एन, तो
- यदि संख्या <अंक [एम + 1], तो
- झूठी वापसी
- यदि संख्या <अंक [एम + 1], तो
- यदि एम + 2 <एन, तो
- यदि संख्या <अंक [एम + 2], तो
- झूठी वापसी
- यदि संख्या <अंक [एम + 2], तो
- सही लौटें
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def solve(nums): n = len(nums) for i in range(n): m = i * 2 num = nums[i] if m + 1 < n: if num < nums[m + 1]: return False if m + 2 < n: if num < nums[m + 2]: return False return True nums = [8, 6, 4, 2, 0, 3] print(solve(nums))
इनपुट
[8, 6, 4, 2, 0, 3]
आउटपुट
True