मुझे लगता है कि पहली बात यह है कि एक समर्थित ऑपरेशन क्या है?
क्या "एक विशिष्ट, निश्चित कुंजी के साथ एक मूल्य सम्मिलित करना" (जैसे पूर्णांक दायरे से ली गई कुंजियों के लिए, कुंजी = 3 के साथ सम्मिलित करना) मिन हीप के लिए एक समर्थित ऑपरेशन के अनुरूप है?
नहीं, क्योंकि उस ऑपरेशन को सामान्य रूप से अधिक समर्थित अभियानों के साथ तुच्छ रूप से लागू किया जा सकता है। इसी तरह, एक बार में 2 तत्वों को डालने से एक्सिसिटिंग insertऑपरेशन किया जा सकता है ।
दूसरी ओर, insertकार्यान्वयन विवरण को उजागर करने के बजाय ऑपरेशन को परिभाषित नहीं किया जा सकता है। यह विकिपीडिया पृष्ठ पर सूचीबद्ध परिचालनों के लिए बहुत अधिक है, heapifyसिवाय इसके, जिसे संभवतः एक अनुक्रम द्वारा कार्यान्वित किया जा सकता है insert।
दूसरे शब्दों में, प्रकार पर प्रदान किए जाने वाले प्राथमिक संचालन हैं, जो उनके लिए अच्छा प्रदर्शन करने के लिए कार्यान्वयन विवरणों के लिए बाध्य हैं, और अन्य संचालन भी हैं, जो उस नियम का पालन नहीं करते हैं, और इस प्रकार एक संयोजन के रूप में लागू किया जा सकता है विहितों का।
मन में उस परिभाषा के साथ, क्या आपको लगता है कि प्रदर्शन के नुकसान के बिना वृद्धि-कुंजी को अन्य समर्थित संचालन के साथ लागू किया जा सकता है? यदि ऐसा है, तो यह उपरोक्त परिभाषा के अनुसार एक समर्थित ऑपरेशन नहीं है, अन्यथा, आप अच्छी तरह से सही हो सकते हैं।
संभवतया, मेरे द्वारा प्रदान किए गए एक समर्थित ऑपरेशन की परिभाषा मेरा है, जहां तक मुझे पता है। यह औपचारिक नहीं है, और इस तरह चर्चा के अधीन है (हालांकि यह मुझे बहुत स्पष्ट लगता है)। हालाँकि, मुझे खुशी होगी कि अगर कोई ऐसा स्रोत प्रदान कर सकता है जो स्पष्ट रूप से और स्पष्ट रूप से परिभाषित करता है कि डेटाटाइप्स के लिए एक समर्थित ऑपरेशन क्या है, या कम से कम इसे मेरे मुकाबले बेहतर शब्दों में परिभाषित करें (क्या यह CLR में दी गई परिभाषा है? मेरे पास कॉपी नहीं है? )।
मेरा दूसरा बिंदु इस बात पर होगा कि हम एक प्राथमिकता कतार को कैसे परिभाषित करते हैं (जो कि बाइनरी हीप्स का raison d'être है)। क्या increase_keyउस डेटाटाइप के लिए एक आवश्यक ऑपरेशन यानी इसके उचित उपयोग के लिए?
जैसा कि आप देख सकते हैं कि मेरा कोण सभी परिभाषाओं के बारे में है। मैं वास्तव में आपके प्रश्नों का उत्तर नहीं देता, केवल कुछ संकेत देता हूं, इसलिए संवर्द्धन का स्वागत है।