स्टैक बनाम हीप
Stack एक ऑर्डर की गई सूची है जिसमें सूची आइटम का सम्मिलन और विलोपन केवल एक छोर में किया जा सकता है जिसे शीर्ष कहा जाता है। इस कारण से, स्टैक को लास्ट इन फर्स्ट आउट (LIFO) डेटा संरचना के रूप में माना जाता है। हीप एक विशेष डेटा संरचना है जो पेड़ों पर आधारित होती है और यह एक विशेष संपत्ति को संतुष्ट करती है जिसे हीप संपत्ति कहा जाता है। इसके अलावा, ढेर एक पूर्ण पेड़ है, जिसका अर्थ है कि पेड़ की पत्तियों के बीच कोई अंतराल नहीं है यानी एक पूर्ण पेड़ में पेड़ में एक नया स्तर जोड़ने से पहले हर स्तर भर जाता है और दिए गए स्तर में नोड्स भर जाते हैं बाएं से दाएं।
स्टैक क्या है?
जैसा कि पहले उल्लेख किया गया है, स्टैक एक डेटा संरचना है जिसमें तत्वों को जोड़ा जाता है और केवल एक छोर से हटा दिया जाता है जिसे शीर्ष कहा जाता है।स्टैक केवल दो मौलिक संचालन की अनुमति देता है जिसे पुश और पॉप कहा जाता है। पुश ऑपरेशन स्टैक के शीर्ष पर एक नया तत्व जोड़ता है। पॉप ऑपरेशन स्टैक के शीर्ष से एक तत्व को हटा देता है। यदि स्टैक पहले से ही भरा हुआ है, जब पुश ऑपरेशन किया जाता है, तो इसे स्टैक ओवरफ़्लो माना जाता है। यदि पॉप ऑपरेशन पहले से ही खाली स्टैक पर किया जाता है, तो इसे स्टैक अंडरफ्लो माना जाता है। स्टैक पर किए जा सकने वाले संचालन की छोटी संख्या के कारण, इसे एक प्रतिबंधित डेटा संरचना माना जाता है। इसके अतिरिक्त, जिस तरह से पुश और पॉप संचालन को परिभाषित किया गया है, यह स्पष्ट है कि स्टैक में अंतिम रूप से जोड़े गए तत्व पहले स्टैक से बाहर जाते हैं। इसलिए स्टैक को LIFO डेटा संरचना के रूप में माना जाता है।
हीप क्या है?
जैसा कि पहले उल्लेख किया गया है, ढेर एक पूर्ण वृक्ष है जो ढेर संपत्ति को संतुष्ट करता है।हीप गुण बताता है कि, यदि y x का चाइल्ड नोड है तो नोड x में संग्रहीत मान नोड y (अर्थात मान (x) मान (y)) में संग्रहीत मान से अधिक या उसके बराबर होना चाहिए। इस गुण का तात्पर्य है कि सबसे बड़े मूल्य वाले नोड को हमेशा रूट पर रखा जाएगा। इस संपत्ति का उपयोग करके निर्मित ढेर को अधिकतम-ढेर कहा जाता है। ढेर संपत्ति की एक और भिन्नता है जो इसके विपरीत बताती है। (यानी मूल्य (एक्स) मूल्य (वाई))। इसका तात्पर्य यह है कि सबसे छोटे मान वाले नोड को हमेशा रूट पर रखा जाएगा, इस प्रकार इसे मिन-हीप कहा जाता है। ढेर पर किए गए संचालन की एक विस्तृत श्रृंखला है जैसे न्यूनतम (न्यूनतम-ढेर में) या अधिकतम (अधिकतम-ढेर में), न्यूनतम (न्यूनतम-ढेर में) या अधिकतम (अधिकतम-ढेर में), बढ़ाना (अधिकतम में) -ढेर) या घटते (न्यूनतम-ढेर में) कुंजी, आदि।
स्टैक और हीप में क्या अंतर है?
स्टैक और हीप के बीच मुख्य अंतर यह है कि स्टैक एक रैखिक डेटा संरचना है, ढेर एक गैर रेखीय डेटा संरचना है।स्टैक एक ऑर्डर की गई सूची है जो LIFO प्रॉपर्टी का अनुसरण करती है, जबकि हीप एक पूर्ण ट्री है जो हीप प्रॉपर्टी का अनुसरण करता है। इसके अलावा, स्टैक एक प्रतिबंधित डेटा संरचना है जो पुश और पॉप के रूप में केवल सीमित संख्या में संचालन का समर्थन करती है, जबकि ढेर न्यूनतम या अधिकतम को खोजने और हटाने, कुंजी को बढ़ाने या घटाने और विलय जैसे संचालन की एक विस्तृत श्रृंखला का समर्थन करता है।