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