• Home
  • /
  • Blog
  • /
  • बच्चों के लिए स्टैक्स के 3 बुनियादी ऑपरेशन्स समझाए गए

बच्चों के लिए स्टैक्स के 3 बुनियादी ऑपरेशन्स समझाए गए

स्टैक ऑपरेशन्स

This post is also available in: English (English) العربية (Arabic)

स्टैक क्या है?

स्टैक एक लीनियर डेटा स्ट्रक्चर है जिसे तार्किक रूप से भौतिक स्टैक या ढेर के रूप में सोचा जा सकता है। स्टैक ऑपरेशंस कई ऍप्लिकेशन्स में जगह पाते हैं। एक स्टैक की कल्पना डेटा सेट को पुस्तकों के ढेर के रूप में सोचकर चित्रित किया जा सकता है जहां आप केवल ऊपर से एक आइटम ले सकते हैं और केवल शीर्ष पर एक आइटम रख सकते हैं।

स्टैक के बेसिक ऑपरेशन बच्चों के लिए आसान बनाये गए
पुस्तकों के ढेर

स्टैक एक लीनियर डेटा स्ट्रक्चर है, जहाँ डेटा को इस तरह से व्यवस्थित किया जाता है कि आप केवल इसके शीर्ष पर डेटा सम्मिलित कर सकते हैं।

स्टैक में, जो डेटा पहले डाला जाता है, उसे सबसे पहले निकाला जाता है और आखिरी में डाला गया डेटा पहले निकाला जाता है। इस कारण स्टैक को LIFO सूची (लास्ट इन फर्स्ट आउट) भी कहा जाता है।

स्टैक्स में 3 बुनियादी ऑपरेशन्स

मुख्य रूप से निम्नलिखित तीन बुनियादी ऑपरेशन स्टैक में किए जाते हैं:

पुश: स्टैक में एक आइटम जोड़ता है। यदि स्टैक भरा हुआ है, तो इसे अतिप्रवाह (ओवरफ्लो) स्थिति कहा जाता है।

पॉप: स्टैक से किसी आइटम को निकालता है। आइटम श्रद्धेय क्रम (रिवर्स आर्डर) में पॉप-अप किए जाते हैं जिसमें उन्हें पुश किया जाता है। यदि स्टैक खाली है, तो इसे अंडरफ्लो स्थिति कहा जाता है।

स्टैक के बेसिक ऑपरेशन बच्चों के लिए आसान बनाये गए
स्टैक में पुश और पॉप

पीक: स्टैक के शीर्ष आइटम को लौटाता है।

स्टैक इम्प्लीमेंटेशन

स्टैक एक बहुत ही उपयोगी अवधारणा है जिसे एक प्रोग्रामर अपने लाभ के लिए उपयोग कर सकता है। क्या आपने कभी अपने कोड में इसे लागू किया है? यह इतना कठिन नहीं है जितना कि आप सोच रहे हैं। आइए इसके गुणों के बारे में जानें और उन्हें कोड में लागू करें।

स्टैक को दो प्रकार से लागू किया जा सकता है:

  • ऐरे का उपयोग करके
  • लिंक्ड लिस्ट का उपयोग करके

ऐरे का उपयोग करके स्टैक को लागू करना

ऐरे सरलतम कंटेनरों में से एक है जो इंडेक्स के आधार पर उपयोगकर्ताओं को यादृच्छिक पहुंच (रैंडम एक्सेस) प्रदान करता है। परन्तु हम किसी भी स्थिति में स्टैक के किसी भी तत्व तक नहीं पहुंच सकते हैं। इसलिए हमें एक इंडेक्स को टॉप पर सेट करने की आवश्यकता है और फिर इंडेक्स टॉप पर केवल तत्व को एक्सेस करना है।

int stack[10];
int top = -1;

यहां, 10 स्टैक की पूर्व-परिभाषित (प्री-डिफाइंड) क्षमता है। यदि उपयोगकर्ता इस क्षमता से अधिक होने का प्रयास करता है, तो आप स्टैक ओवरफ़्लो एरर के लिए एक कोड लिख सकते हैं।

यहां ध्यान देने वाली दूसरी बात यह है कि शीर्ष = -1, जिसका अर्थ है कि स्टैक खाली है (क्योंकि किसी सरणी में सूचकांक 0. इंडेक्स 0 से शुरू होता है, जिसका अर्थ है स्थिति 1)।

निम्नलिखित कोड का उपयोग करके स्टैक लागू किया गया है:

struct stack
{
	int arr[capacity];
	int top;
}

पुश ऑपरेशन

To insert a new element is inserted into the stack, the following steps are performed:

  • टॉप का मान 1 से बढ़ाया जाता है।
  • मान टॉप पर रखा गया है।

The code for push operation will be:

void push(int item)
{
    if ( top == capacity - 1 )
        cout << "Stack overflow!" ;
    else
    {
        top = top + 1;
        arr[top+1] = item;
    }
}

पॉप ऑपरेशन

स्टैक से किसी तत्व को निकालने के लिए, निम्न चरणों का पालन किया जाता है

  • शीर्ष तत्व को हटा दिया जाता है।
  • शीर्ष (टॉप) का मान 1 से कम कर दिया जाता है।

पॉप ऑपरेशन के लिए कोड होगा:

void pop()
{
    if ( top == -1 )
        cout << "Stack is empty!";
    else
		cout << arr[top];
        top = top - 1
;
}

पीक ऑपरेशन

पीकिंग ऑपरेशन स्टैक के शीर्ष पर तत्व को एक्सेस करता है। पीक ऑपरेशन के लिए कोड होगा:

int peek()
{
    if ( top == -1 )
    {
        cout << "Stack is empty!";
    }
    else 
        return arr[top];
}

लिंक्ड लिस्ट का उपयोग करके स्टैक को लागू करना

एक लिंक्ड सूची में दो छोर होते हैं – हेड और टेल। While implementing stack using linked list, the head is taken as the top of the stack.

First of all a linked list is implemented using the following code:

struct ListNode{
    int val;
    ListNode *next;
}

Now this linked list is used to implement the stack.

struct Stack{
    int capacity;
    struct ListNode{
        int val;
        ListNode *next;
    }
}

पुश ऑपरेशन

ऐरे द्वारा इम्प्लीमेंट की गयी लिंक्ड लिस्ट के सभी गुण इसमें भी होते हैं,बल्कि इसमें हमें स्टैक के भरने (ओवरफ्लो) होने की चिंता नहीं रहती। The code for push operation will be:

void push(int item)
{
    ListNode temp = ListNode(item)
;
    temp->next = head
;
    head = temp
;
}

पॉप ऑपरेशन

चूंकि इस कार्यान्वयन में टॉप का प्रतिनिधित्व हेड द्वारा किया जाता है। पॉप ऑपरेशन को लागू करने का मूल विचार दूसरा तत्व हेड के रूप में बनाना है। The code for push operation will be:

void pop()
{
    if ( head == NULL )
        cout << "Stack is empty!";
    else
        head = head->next;
}

मेमोरी लीक से बचने के लिए आपको पॉपअप नोड से निपटने की आवश्यकता हो सकती है।

पीक ऑपरेशन

लिंक्ड लिस्ट का उपयोग करके पीक संचालन का कार्यान्वयन एकदम सरल है। पीक ऑपरेशन के लिए कोड होगा:

int peek()
{
    if ( head == NULL )
    {
        cout << "Stack is empty!";
        return -1;
    }
    else
        return head->val;
}

Applications of Stack Data Structure

कंप्यूटर विज्ञान में स्टैक के कुछ ऍप्लिकेशन्स निम्नलिखित हैं:

  • टेक्स्ट एडिटर्स में “अनडू” और “रीडू” तंत्र।
  • वेब ब्राउजर में फॉरवर्ड और बैकवर्ड फीचर।
  • एक एक्सप्रेशन और एक्सप्रेशन इवैल्यूएशन में संतुलित कोष्ठक की जाँच करना।
  • सिंटेक्स पार्सिंग
  • ऑपरेटिंग सिस्टम मेमोरी प्रबंधन के लिए एक स्टैक का उपयोग करता है।

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}
>