Stack एक Linear Data Structure है जो एक समान Data Type की Ordered List होती है इसे आप कुछ इस तरह से समझ सकते हैं कि हमारे पास एक डिब्बा है जिसमें हमने कुछ वस्तुओं को एक के बाद एक डिब्बे में भर रखा है यह एक LIFO ( Last in first out) के सिद्धान्त पर कार्य करने वाला Data Structure है । इसका मतलब है यदि हम अपने डिब्बे में सबसे नीचे की वस्तु Number 1 को निकालना चाहते हैं तो सबसे लास्ट की वस्तु को पहले निकलेंगे और इसके बाद उससे पहले की वस्तु निकलेंगे तभी तो वह निकाल पाएंगे हां आप सोच रहे होगें कि डिब्बा को फाड़ दे तो ऐसा करना उचित नहीं है और कभी – कभी तो ऐसे डिब्बे होते है जिन्हे चाहकर भी फ़ाड़ नहीं सकते है । कहने का तात्पर्य यह है कि जो वस्तु सबसे अन्तिम में डिब्बा के अन्दर गई है वह सबसे पहले बाहर आएगी और जो सबसे पहले वस्तु डिब्बा के अन्दर गई है वो वस्तु अन्त में आएगी ।
Stack में Elements को डालने एक लिमिट भी होती है यानि जब तक डिब्बे में जगह है तब उसमें आप Elements डाल सकते है जब कोई Elements डिब्बे यानी Stack में न आ पा रहे हो यानी और वस्तुओं की आने की जगह न हो तो उसे Overflow कहते है और जब पूरी तरह स खाली होता है यानि एक भी Elements नहीं होते है तो उसे Underflow कहते है।
Stack में निम्नलिखित Operations को perform किया जाता है-
- push() – जब स्टैक में item को insert किया जाता है यानि items को डाला जाता है तो वह push ऑपरेशन कहलाता है ।
- pop() – जब स्टैक में से item को delete किया जाता है यानि जब items को बाहर निकाला जाता है तो इस operation को pop operation कहते हैं ।
- isEmpty() – यह ऑपरेशन बताता है कि stack खाली है या नहीं ।
- isFull() – यह ऑपरेशन बताता है कि stack भरा हुआ है या नहीं ।
- peek() – यह दी गयी position पर element को return करता है ।
- count() – यह stack में मौजूद elements की कुल संख्या को return करता है ।
- change() – यह दी गयी position पर element को बदल देता है ।
- display() – यह स्टैक में मौजूद सभी elements (items) को print करता है ।
Representation Of Stack ~ स्टैक का रिप्रजेंटेशन
निम्नलिखित चित्र में Stack और उसके Operation को दर्शाया गया है –
Stack को Array, Structure, Pointer और Linked List के माध्यम से Implement किया जा सकता है । Stack या तो एक निश्चित Size का हो सकता है। या Dynamic Size में परिवर्तित किया जा सकता है ।
Application Of Stack ~ स्टैक के अनुप्रयोग
- इसका प्रयोग backtracking की problem को solve करने के लिए किया जाता है. backtracking का अर्थ है वापस पीछे जाना होता है।
- इसका प्रयोग Infix Expression को Postfix Expression या Prefix Expression में Convert करने के लिए किया जाता है ।
- बहुत सारीं जगहों जैसे कि – Photoshop, Editors आदि में Undo और Redo के कार्य के लिए Stack का प्रयोग किया जाता है ।
- Web Browsers में Backward और Forward के Feature के लिए इसका Use किया जाता है ।
- Memory Management में इसका उपयोग किया जाता है ।
- इसको Graph Traversal Algorithms में Use किया जाता है ।
- इसका प्रयोग CPU Scheduling और Disk Scheduling में किया जाता है ।
Basic Features Of Stack ~ स्टैक की विशेषताएं
- Stack एक समान Data Type की Ordered List है।
- Stack एक LIFO ( Last in First Out ) सिद्धान्त पर कार्य करने वाला Data Structure है।
- इसमें Data का इंसर्शन और डिलीशन केवल एक छोर (end) पर किए जाते है।
- इसे तब overflow कहते हैं जब यह पूरी तरह से Stack full होता है और तब underflow कहते हैं जब यह पूरी तरह से empty होता है ।