मैंने हमेशा सोचा था कि ढेर और प्राथमिकता कतार समानार्थी थे - एक सार डेटा संरचना जो समर्थन करती है insert
, findMin
और deleteMin
संचालन।
कुछ साहित्य मेरे साथ सहमत लगते हैं - उदाहरण के लिए क्रिस ओकासाकी की विशुद्ध रूप से कार्यात्मक डेटा संरचनाएं (अध्याय 3)।
दूसरी ओर, विकिपीडिया का हीप पृष्ठ इसे वृक्ष-आधारित डेटा संरचना के रूप में परिभाषित करता है, और बताता है कि ढेर प्राथमिकता वाले कतारों का एक ठोस कार्यान्वयन है।
मैं इस तथ्य के साथ एक कठिन सामंजस्य स्थापित कर रहा हूं कि मैं एक से अधिक ढेर कार्यान्वयन के बारे में सोच सकता हूं - वामपंथी ढेर, द्विपद ढेर, स्प्ले हीप ...
क्या साधारण तथ्य यह है कि अलग-अलग डेटा संरचनाओं के साथ ढेर को लागू किया जा सकता है, जिसका अर्थ यह नहीं है कि परिभाषा के अनुसार, यह एक सार डेटा संरचना है? और अगर ऐसा है, तो क्या प्राथमिकता कतारों के साथ वास्तविक अंतर है?