STACK In Hindi/ STACK Kya Hota Hai?/ STACK क्या है ?

हेलो दोस्तों आज के इस ब्लॉग पोस्ट(STACK In Hindi) में हम आपको Stack के बारे में हिंदी में जानकारी देने वाले है | Stack जो है वो एक लीनियर डाटा स्ट्रक्चर(Data Structure) होता है जो कि ऑपरेशन परफॉर्म करने के लिए एक प्रॉपर आर्डर फॉलो करता है | और ये आर्डर हो सकते है LIFO (last in first Out) और FILO (first in last Out)|

Stack(STACK In Hindi) जो होता है वो abstract Data type होता है | और इसे बहुत सी programming language में use किया जाता है | इसे Stack इसलिए कहा जाता है क्योकि यह रियल लाइफ के Stack की तरह ही behave करता है | जैसे example के लिए a deck of a cards अथवा pile of plates |

stack example
stack example: STACK In Hindi

Real world में जो Stack होता है वह केवल एक ही end पर ऑपरेशन को allow करता है | जैसे कि Example के लिए हम किसी कार्ड अथवा प्लेट्स को केवल टॉप से ही रिमूव कर सकते है |STACK In Hindi|

इसलिए ADT Stack केवल एक ही end से डाटा ऑपरेशन को allow करता है | हम किसी भी समय स्टैक के केवल टॉप element को access कर सकते है |

और इसका यही features इसे LIFO Data structure बनता है | LIFO जो है उसे हम last in first out कहते है | मतलब जो element लास्ट में insert होगा उसे हम सबसे पहले एक्सेस कर पाएंगे|

Stack की टर्मिनोलॉजी में हम insertion ऑपरेशन को हम PUSH ऑपरेशन कहते है, और एलिमेंट के रिमूवल operation को हम POP ऑपरेशन कहते है |

Stack Representation :

निचे दिए गए Stack के डायग्राम में आप Stack और उसके Operation को देख सकते है |

stack representation
stack representation: STACK In Hindi

Stack को हम एक array , structure , pointer , और linked list की सहायता से इम्प्लीमेंट कर सकते है | Stack या तो किसी fixed साइज का हो सकता है या फिर वो dynamic resizing का हो सकता है |

यहाँ पर एक array की मदद से स्टैक को इम्प्लीमेंट करने जा रहे है | जो कि एक फिक्स्ड साइज स्टैक इम्प्लीमेंटेशन करता है |

Basic operations :

Stack Operation में mainly तीन चीज़े होती है सबसे पहले स्टैक को initialize करना और फिर उसे use करना और इसके बाद उसे de -initialize करना| इन basic stuff के अलावा स्टैक को दो main ऑपरेशन के लिए use किया जाता है वो है −

push() − किसी भी एलिमेंट को Stack में PUSH अथवा store करना .

pop() − Stack से किसी भी एलिमेंट को रिमूव करना अथवा निकालना जब डाटा को Stack में pushed कर दिया जाता है|

किसी भी Stack को efficiently use करने के लिए सबसे पहले Stack का स्टेटस चेक करना जरुरी है | और इसी purpose के लिए निम्नलिखित functionality को स्टैक में add किया जाता है

peek() − Stack के टॉप डाटा को प्राप्त करना बिना उसे रिमूव किये |

isFull() − status फुल है या नहीं चेक करने के लिए |

isEmpty() − empty स्टेटस चेक करने के लिए

हर समय हम एक पॉइंटर मेन्टेन करते है जो कि उस डाटा पर होता है जिसे Stack में सबसे last में PUSH किया जाता है इसलिए इसे टॉप कहा जाता है | और यह जो टॉप पॉइंटर है वो स्टैक की टॉप वैल्यू प्रोवाइड करवाता है बिना उसे रिमूव करें |

Push Operation :

Stack में नए डाटा एलिमेंट को रखने की प्रोसेस को हम PUSH ऑपरेशन बोलते है | PUSH ऑपरेशन में निम्नलिखित steps रहते है:

Step 1 − चेक करना है कि Stack फुल है या नहीं

Step 2 − अगर Stack full है तो एक error प्रोडूस करके exit कर दो

Step 3 − अगर Stack फुल नहीं है तो फिर Top पॉइंटर को increment कर दो जिससे वो अगले एम्प्टी स्पेस को पॉइंट करने लगे|

Step 4 – जहाँ पर Top पॉइंट कर रहा है वहां पर डाटा एलिमेंट को ऐड कर दो

Step 5 − Returns success.

stack push operation
stack push operation: STACK In Hindi

अगर Stack को implement करने के लिए linked list का उपयोग करते है तो फिर स्टेप 3 में हमें dynamically स्पेस को allocate करना पड़ेगा|

PUSH Operation की algorithm : PUSH Operation की algorithm नीचे दी गयी है |

begin procedure push: stack, data

   if stack is full
      return null
   endif
   
   top ← top + 1
   stack[top] ← data

end procedure

algorithm का C में implementation नीचे दिया गया है |

Example :

void push(int data) {
   if(!isFull()) {
      top = top + 1;   
      stack[top] = data;
   } else {
      printf("Could not insert data, Stack is full.\n");
   }
}

Pop Operation :

जब हम किसी भी Stack से किसी कंटेंट को रिमूव करते है अथवा access करते है तब इस ऑपरेशन को हम POP Operation कहते है | POP () ऑपरेशन के array implementation में actually में डाटा एलिमेंट जो है वो remove नहीं होता है | जबकि यहाँ पर Stack में टॉप जो है उसका lower position पर decrement हो जाता है और वह next वैल्यू को पॉइंट करने लगता है | पर linked list implementation के केस में जो डाटा एलिमेंट है उसे actually में रिमूव कर दिया जाता है और फिर उसके मेमोरी स्पेस को deallocate कर दिया जाता है |

एक POP Operation में निम्नलिखित स्टेप्स रहते है

Step 1 − सबसे पहले चेक करो कि Stack खाली है या नहीं

Step 2 − अगर Stack खाली है तो फिर error produce करके exit कर दो

Step 3 − अगर Stack empty नहीं है तब उस डाटा एलिमेंट को access करो जिसे टॉप पॉइंट कर रहा है |

Step 4 − टॉप की वैल्यू को 1 से decrease कर दो

Step 5 − Returns success.

stack pop operation
stack pop operation: STACK In Hindi

POP Operation के लिए एक सिंपल algorithm निम्नलिखित है :

begin procedure pop: stack

   if stack is empty
      return null
   endif
   
   data ← stack[top]
   top ← top - 1
   return data

end procedure

इस algorithm का C में implementation निम्नलिखित है :

Example :

int pop(int data) {

   if(!isempty()) {
      data = stack[top];
      top = top - 1;   
      return data;
   } else {
      printf("Could not retrieve data, Stack is empty.\n");
   }
}

Conclusion:

तो दोस्तों इस ब्लॉग पोस्ट( STACK In Hindi ) में हमने Stack के बारे में हिंदी में जाना | Stack जो है वो एक linear Data structure होता है जिसमे दो तरीको से element को store अथवा remove किया जाता है | एक होता है LIFO (last in first out) और दूसरा है फिलो(first in last out )| Stack के अंदर दो मुख्य Operation होते है एक होता है PUSH ऑपरेशन जिसमे element को Stack के अंदर PUSH किया जाता है| और दूसरा होता है POP Operation जिसमे element को Stack से remove अथवा access किया किया जाता है |

इस ब्लॉग(STACK In Hindi) को लेकर आपके मन में कोई भी प्रश्न है तो आप हमें इस पते [email protected]पर ईमेल लिख सकते है|

आशा करता हूँ, कि आपने इस पोस्ट(STACK In Hindi) को खूब एन्जॉय किया होगा|

आप स्वतंत्रता पूर्वक अपना बहुमूल्य फीडबैक और कमेंट यहाँ पर दे सकते है|STACK In Hindi|

आपका समय शुभ हो|STACK In Hindi

Anurag

I am a blogger by passion, a software engineer by profession, a singer by consideration and rest of things that I do is for my destination.